一、运算符
- +:用于合并两个序列,支持类型有字符串、列表、元组
- *:用于复制一个序列,支持类型有字符串、列表、元组
- in:判断元素是否存在,支持类型有字符串、列表、元组、字典
- not in:判断元素是否不存在,支持类型有字符串、列表、元组、字典
举例如下:
str1 = 'abc'
str2 = '13'
l1 = [2, 5, 3]
l2 = ['c', 3]
t1 = ('a', 'b')
t2 = ('c', 3)
print('--------------运算---------------')
print(str1 + str2, l1 + l2, t1 + t2) # 合并
print(str2*3, l2*3, t2*3) # 复制
print('a' in str1, 'b' not in l1, 'b' in t1) # 判断
输出:
--------------运算---------------
abc13 [2, 5, 3, 'c', 3] ('a', 'b', 'c', 3)
131313 ['c', 3, 'c', 3, 'c', 3] ('c', 3, 'c', 3, 'c', 3)
True True True
二、公共方法
- len(序列):用于计算系列中元素个数
- del 序列或del(序列[下标或key]):删除指定数据或整个序列
- min(序列):用于获取同一数据类型序列中元素最小值
- max(序列):用于获取统一数据类型序列中元素最大值
- range(start,end,step):生成从start到end的数字,步长为step,供for循环使用
- enumerate():用于将一个可遍历的数据对象(如列表、元组、字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环中
- 语法:enumerate(可遍历对象,start=0),start用于设置遍历数据下标的起始值,默认为0
举例如下:
str1 = 'abc'
str2 = '13'
l1 = [2, 5, 3]
l2 = ['c', 3]
t1 = ('a', 'b')
t2 = ('c', 3)
s1 = {'a', 'b', 'c'}
s2 = {1, 'b'}
d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'aa': 11, 'bb': 22}
print('--------------公共方法---------------')
print('-------len---del---min---max--------')
print(len(str1), len(l1), len(t1), len(s1), len(d1)) # 获取序列中元素个数
del(l2[1]) # 删除列表l2中下标为1的数据
print(l2)
del l2 # 删除列表l2
# print(l2) # 已删除,输出:NameError: name 'l2' is not defined
del(d2['aa']) # 删除字典d2中key为aa的键值对
print(d2)
del d2 # 删除字典d2
# print(d2) # 已删除,输出:NameError: name 'd2' is not defined
del str2 # 删除字符串str2
# print(str2) # 已删除,输出:NameError: name 'str2' is not defined
del t2 # 删除元组t2
# print(t2) # 已删除,输出:NameError: name 't2' is not defined
del s2 # 删除集合s2
# print(s2) # 已删除,输出:NameError: name 's2' is not defined
print(min(str1), min(l1), min(t1), min(s1), min(d1)) # 返回序列中数据最小值,相同数据类型才能比较
print(max(str1), max(l1), max(t1), max(s1), max(d1)) # 返回最大值
print('---------range---enumerate---------')
l3 = []
l4 = []
for i in range(2, 11, 2): # 生成2~11的整型数据,步长为2
l3.append(i)
print(l3)
for i in range(8): # 生成0~8的整型数字
l4.append(i)
print(l4)
for i in enumerate(l3): # 将列表l3组合为一个索引序列,格式为(下标,列表l3中数据)
print(i)
for index, char in enumerate(l3, 2): # 将列表l3组合为一个索引序列,下标以2为起始值
print(f'索引下标为{index},对应字符为{char}')
输出:
--------------公共方法---------------
-------len---del---min---max--------
3 3 2 3 3
['c']
{'bb': 22}
a 2 a a a
c 5 b c c
---------range---enumerate---------
[2, 4, 6, 8, 10]
[0, 1, 2, 3, 4, 5, 6, 7]
(0, 2)
(1, 4)
(2, 6)
(3, 8)
(4, 10)
索引下标为2,对应字符为2
索引下标为3,对应字符为4
索引下标为4,对应字符为6
索引下标为5,对应字符为8
索引下标为6,对应字符为10
三、列表、元组、集合之间类型转换
四、推导式
作用:简化代码
4.1 列表推导式(列表生成式)
作用:用一个表达式创建或控制一个有规律的列表
语法:[xx for xx in range()]
实现方式
- while循环
- for循环
- 列表推导式实现
举例如下:
print('-------创建列表---while实现------')
l5 = []
i = 0
while i < 10:
l5.append(i)
i += 1
print(l5)
print('------创建列表---for循环实现-------')
l6 = []
for i in range(10):
l6.append(i)
print(l6)
print('------创建列表---列表推导式--------')
l7 = [i+1 for i in range(10)]
print(l7)
l8 = [i for i in range(10) if i % 2 == 0] # 带if列表推导式
print(l8)
l9 = [(i, j) for i in range(1, 3) for j in range(2, 5, 2)] # 多个for循环
print(l9)
输出:
-------创建列表---while实现------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
------创建列表---for循环实现-------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
------创建列表---列表推导式--------
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 2, 4, 6, 8]
[(1, 2), (1, 4), (2, 2), (2, 4)]
4.2 字典推导式
字典推导式作用:快速合并列表为字典或提取字典中目标数据
语法:{xx1:xx2 for xx in xx}
举例如下:
print('------字典推导式--------')
d3 = {i: i*2 for i in range(1, 5)} # 创建字典
print(d3)
l10 = ['a', 'b', 'c', 'c']
l11 = ['aa', 'bb', 33, 'bb']
d4 = {l10[i]: l11[i] for i in range(len(l10))} # 将两个列表合并为一个字典
print(d4)
d = {k: v for k, v in d4.items() if v == 'bb'} # 提取字典中值为bb的目标数据
print(d)
输出:
------字典推导式--------
{1: 2, 2: 4, 3: 6, 4: 8}
{'a': 'aa', 'b': 'bb', 'c': 'bb'}
{'b': 'bb', 'c': 'bb'}
4.3 集合推导式
语法:{xx for xx in xx}
举例如下:
print('---------集合推导式----------')
l12 = [1, 3, 1, 4, 5]
s3 = {i ** 2 for i in l12} # 集合去重,1只显示一个
print(s3)
输出:
---------集合推导式----------
{16, 1, 9, 25}