WHCSRL 技术网

python的字符串、列表、元组、字典、集合

前言

Python3 中有六个标准的数据类型:

Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典)

Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

一、字符串

字符串用引号""括起来,是不可修改的有序序列。

代码如下(示例):

    str1 = 'hello, python!'
    # 通过len函数计算字符串的长度
    print(len(str1))  # 13
    # 字符串首字母大写
    print(str1.capitalize())  # Hello,python!
    # 字符串大写
    print(str1.upper())  # HELLO, PYTHON!
    # 从字符串中查找子串所在位置
    print(str1.find('on'))  # 11
    print(str1.find('99'))  # -1
    # 与find类似但找不到子串时会引发异常
    # print(str1.index('on'))
    # print(str1.index('99'))
    # 检查字符串是否以指定的字符串开头
    print(str1.startswith('go'))  # False
    print(str1.startswith('hel'))  # True
    # 检查字符串是否以指定的字符串结尾
    print(str1.endswith('!'))  # True
    # 将字符串以指定的宽度居中并在两侧填充指定的字符
    print(str1.center(50, '*'))
    # 将字符串以指定的宽度靠右放置左侧填充指定的字符
    print(str1.rjust(50, ' '))
    str2 = 'abc123456'
    # 从字符串中取出指定位置的字符(下标运算)
    print(str2[1])  # b
    # 字符串切片(从指定的开始索引到指定的结束索引)
    print(str2[2:5])  # c12
    print(str2[2:])  # c123456
    print(str2[2::2])  # c246
    print(str2[::2])  # ac246
    print(str2[::-1])  # 654321cba
    print(str2[-3:-1])  # 45
    # 检查字符串是否由数字构成
    print(str2.isdigit())  # False
    # 检查字符串是否以字母构成
    print(str2.isalpha())  # False
    # 检查字符串是否以数字和字母构成
    print(str2.isalnum())  # True
    str3 = '  jackfrued@126.com '
    print(str3)
    # 去除左右两侧空格
    print(str3.strip())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

二、列表

列表用【】方括号括起来,用逗号隔开,例:list =【2,8】,可进行增删改查的有序序列。

代码如下(示例):

    list1 = [1, 8, 99, 9, 100]
    print(list1)
    list2 = ['python'] * 5
    print(list2)
    # 计算列表长度(元素个数)
    print(len(list1))
    # 下标(索引)运算
    print(list1[0])
    print(list1[4])
    # print(list1[5])  # IndexError: list index out of range
    print(list1[-1])
    print(list1[-3])
    list1[2] = 300
    print(list1)
    # 添加元素
    list1.append(200)
    list1.insert(1, 400)
    list1 += [1000, 2000]
    print(list1)
    print(len(list1))
    # 删除元素
    list1.remove(3)
    if 1234 in list1:
        list1.remove(1234)
    del list1[0]
    print(list1)
    # 清空列表元素
    list1.clear()
    print(list1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

三、元组

元组用()圆括号括起来,用逗号隔开,不可修改的有序序列。

代码如下(示例):

    # 定义元组
    t = ('panpan', 29, True, '广东广州')
    print(t)
    # 获取元组中的元素
    print(t[0])
    print(t[3])
    # 遍历元组中的值
    for i in t:
        print(i)
    # 重新给元组赋值
    # t[0] = '盘子'  # TypeError
    # 变量t重新引用了新的元组原来的元组将被垃圾回收
    t = ('盘子', 44, True, '广东阳江')
    print(t)
    # 将元组转换成列表
    info = list(t)
    print(info)
    # 列表是可以修改它的元素的
    info[0] = '六六'
    info[1] = 25
    print(info)
    # 将列表转换成元组
    fruits_list = ['orange','apple', 'banana' ]
    fruits_tuple = tuple(fruits_list)
    print(fruits_tuple)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

四、字典

字典用{ }花括号括起来,用逗号隔开,字典是另一种可变容器,与列表、集合不同的是,字典的每个元素都是由一个键和一个值组成的“键值对”,键和值通过冒号分开。

代码如下(示例):

    menmbers = {'panpan': 95, 'zaizai': 94, 'fangfang': 96}
    # 通过键可以获取字典中对应的值
    print(menmbers['panpan'])
    print(menmbers['fangfang'])
    # 对字典进行遍历(遍历的其实是键再通过键取对应的值)
    for i in menmbers:
        print('%%s	--->	%%d' %% (i, menmbers[i]))
    # 更新字典中的元素
    menmbers['panpan'] = 76
    menmbers['fangfang'] = 55
    menmbers.update(zaizai=63, fangfang=88)
    print(menmbers)
    if 'zaizai' in menmbers:
        print(menmbers['zaizai'])
    print(menmbers.get('zaizai'))
    # get方法也是通过键获取对应的值但是可以设置默认值
    print(menmbers.get('zaizai', 60))
    # 删除字典中的元素
    print(menmbers.popitem())
    print(menmbers.popitem())
    print(menmbers.pop('panpan', 100))
    # 清空字典
    menmbers.clear()
    print(menmbers)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

五、集合

集合不允许有重复元素

代码如下(示例):

    set1 = {1, 2, 3, 3, 3, 2}
    print(set1)
    print('Length =', len(set1))
    set2 = set(range(1, 10))
    print(set2)
    set1.add(4)
    set1.add(5)
    set2.update([11, 12])
    print(set1)
    print(set2)
    set2.discard(5)
    # remove的元素如果不存在会引发KeyError
    if 4 in set2:
        set2.remove(4)
    print(set2)
    # 遍历集合
    for i in set2:
        print(i ** 2, end=' ')
    print()
    # 将元组转换成集合
    set3 = set((1, 2, 3, 3, 2, 1))
    print(set3.pop())
    print(set3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
推荐阅读