程序员的知识教程库

网站首页 > 教程分享 正文

Python运算符,常见内置函数,序列解包,链式赋值,推导式

henian88 2024-09-11 03:45:25 教程分享 10 ℃ 0 评论

目录:运算符,常见内置函数,序列解包,链式赋值,推导式


运算符

运算符 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}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表