python的运算符的语法与运用案例(Python运算符常见内置函数)
python的运算符的语法与运用案例(Python运算符常见内置函数)len() 计算容器中元素个数 len(list_1)函数名 描述 例子in 'b' in {'b':1 'c':2} True 元素是否存在 字符串、列表、元组、字典not in 4 not in (1 2 3) True 元素是否不存在 字符串、列表、元组、字典**注意,in在对字典操作时,判断的是字典的键而不是值**
目录:运算符,常见内置函数,序列解包,链式赋值,推导式
运算符运算符 Python 表达式 结果 描述 支持的数据类型
[1 2] [3 4] [1 2 3 4] 合并 字符串、列表、元组
* a = 'a'*4 aaaa 复制 字符串、列表、元组
in 'b' in {'b':1 'c':2} True 元素是否存在 字符串、列表、元组、字典
not in 4 not in (1 2 3) True 元素是否不存在 字符串、列表、元组、字典
**注意,in在对字典操作时,判断的是字典的键而不是值**
常见内置函数函数名 描述 例子
len() 计算容器中元素个数 len(list_1)
max() 返回容器中元素最大值 max(list_1)
min() 返回容器中元素最小值 min(list_1)
del() 删除变量 del(list_1) 或者 del list_1
max() 返回容器中元素最大值
min() 返回容器中元素最小值
a = [1 2 2 1 10]
print(max(a))
b = ['a' 'b' 'z']
print(min(b)) #根据ASCII表顺序
10
a
序列解包定义:它将一个序列(或任何可迭代对象)解开,并将得到的值存储到一系列变量中。
x y z = [1] '2' (3)
print(x)
print(y)
print(z)
[1]
2
3
链式赋值x = y = z = [1]
print(x)
print(y)
print(z)
[1]
[1]
[1]
推导式:通过for循环自动创建列表,只需用一行代码1.列表生成式:
普通通过for循环自动创建列表
list1 = []
for i in range(11):
list1.append(i)
print(list1)
[0 1 2 3 4 5 6 7 8 9 10]
列表生成式创建列表,只要一行搞定:
list1 = [i for i in range(11)]
print(list1)
[0 1 2 3 4 5 6 7 8 9 10]
#列表生成式中运算后生成
list1 = [i*i for i in range(11)] #每个i乘以本身之后进入列表
print(list1)
[0 1 4 9 16 25 36 49 64 81 100]
#增加条件筛选 if条件写在最后
list1 = [i for i in range(11) if i %2 == 0] #取出0到10中的偶数
print(list1)
[0 2 4 6 8 10]
#当列表下标位置有多个元素:
list3 = [(1 3) (7 4)]
list2 = []
list4 = []
[(list2.append(i)) for (i) in list3] #将(1 3)整体看成i
print(list2)
[(list4.append((i k))) for i k in list3] #将(1 3)看成(i k)
print(list4)
[(1 3) (7 4)]
[(1 3) (7 4)]
2.元组推导式:和列表类似,但是需要转为列表后再打印
元组需转为列表后再打印
3.字典推导式
一般情况下,len(key) = len(value) ,即键和值的个数要一致,否则会报错
key_1 = ['a' 'b']
value = [18 19]
dict1 = {key_1[i]: value[i] for i in range(len(key_1)) if len(key_1) == len(value)}
print(dict1)
{'a': 18 'b': 19}
键和值的个数不一致,报错
key_1 = ['a' 'b' 'c']
value = [18 19]
dict1 = {key_1[i]: value[i] for i in range(len(key_1))}
print(dict1)
dict1 = {key_1[i]: value[i] for i in range(len(key_1))}
IndexError: list index out of range 值的个数不足
特殊情况:如果len(key) ≠ len(value)
len(key) > len(value),需新增值(value)
key_1 = ['a' 'b' 'c' 'd'] #键 长度为4
value = [18 19] #值 长度为2
if len(key_1) - len(value)>0: #键的数量大于值的数量
a = len(key_1)-len(value) #键和值之间的数量差,即4-2 = 2
dict1 = {key_1[i]:value[i] for i in range(len(key_1)-a)}
#键的长度减去差值,说明在键和值的个数一致时,键和值一一对应
#字典是通过键的下标来更改值
#len(key_1)-a = 4-2 = 2;range(2)表示遍历key_1和value下标为0,1的值
#若在这里print(dict1),结果为 {'a': 18 'b': 19}
for i in range(len(key_1)-a len(key_1)): #从多出的键开始遍历至最后一个键
dict1[key_1[i]] = None #通过下标来添加(更改)键的值,None为新添加的值
else: #相当于len(key_1) - len(value) <=0
dict1 = {key_1[i]:value[i] for i in range(len(key_1))}
# 直接按key_1的长度来遍历,可以没有值,但是不能没有键
print(dict1)
{'a': 18 'b': 19 'c': None 'd': None}
len(key) < len(value),按键(key)的长度取
key_1 = ['a' 'b' 'c' 'd'] #键
value = [18 19 33 22 12] #值
if len(key_1) - len(value)>0: #键的数量大于值的数量
a = len(key_1)-len(value) #键和值之间的数量差
dict1 = {key_1[i]:value[i] for i in range(len(key_1)-a)}
#键的长度减去差值,说明在键和值的个数一致时,键和值一一对应
#字典是通过键的下标来更改值
#len(key_1)-a = 4-2 = 2;range(2)表示遍历key_1和value下标为0,1的值
#若在这里print(dict1),结果为 {'a': 18 'b': 19}
for i in range(len(key_1)-a len(key_1)): #从多出的键开始遍历至最后一个键
dict1[key_1[i]] = None #通过下标来添加(更改)键的值,None为新添加的值
else: #相当于len(key_1) - len(value) <=0
dict1 = {key_1[i]:value[i] for i in range(len(key_1))}
# 直接按key_1的长度来遍历,可以没有值,但是不能没有键
print(dict1)
{'a': 18 'b': 19 'c': 33 'd': 22}