Python 中好用的函数

1.list 使用一颗星(*)解包 & map使用一颗星(**)解包

>>> name = '阿美'
>>> grade = [90, 95, 93]
>>> print("%s的成绩:语文%d,数学%d,英语%d"%(name, *grade))
阿美的成绩:语文90,数学95,英语93
>>> print("{}的成绩:语文{},数学{},英语{}".format(name, *grade))
阿美的成绩:语文90,数学95,英语93

2.list使用enumerate()函数

普通的写法:

>>> grade = [90, 95, 93]
>>> for i in range(len(grade)):
	print(i, grade[i])
0 90
1 95
2 93

使用enumera()函数

>>> grade = [90, 95, 93]
>>> for i, g in enumerate(grade):
	print(i, g)
0 90
1 95
2 93
a = enumerate('abcd')
print(list(a))  # 输出:[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]

3.list 使用zip

 a = [1, 2, 3]
 b = [4, 5, 6]
 for i,j in zip(a,b)
 	print(i, j)

在这里插入图片描述

4.字典的get()方法

普通:

>>> if '物理' in grade:
	物理 = grade['物理']
else:
	物理 = 0

get()方法:
get()的第2个参数,表示键不存在时函数返回的值。如果省略该参数,键不存在时函数返回None(无返回)

>>> 物理 = grade.get('物理', 0) // 没有物理key,就默认0

5.字典使用setdefault

aa = {'a':1; 'b':2}
aa['a'] = 10
aa.update('a':11; 'c':22)
aa.setdefault('a', 20) // key c 不存在,就追加;存在就默认不更新

6.set()

set([iterable])用于创建一个结合,集合里的元素是无序且不重复的

obj = ['a', 'b', 'c', 'd', 'a']
print(set(obj)) # 输出:{'b', 'c', 'd', 'a'}

对集合进行并集、交集、差集

a = set('hello')
b = set('world')
a + b
a - b
a & b
a | b
a.union(b) # 并集
a.intersection(b) # 交集
a.difference(b) # 差集

7. eval()

eval(str_expression):将字符串转换成表达式,并执行

x = input()
print(elal(x))

a = eval('[1, 2, 3]')
print(type(a)) # 输出:<class 'list'>

b = eval('max([2, 4, 5])')
print(b) # 输出:5

8.sorted()

a = sorted([2, 4, 3, 7, 1, 9])
print(a)
# 倒序
a = sorted((4, 1, 9, 6), reverse=True)
print(a)
# 使用参数key,根据自定义规则,按字符串长度排序
b = ['apple', 'watermelon', 'pear', 'banana']
a = sorted(b, key=lambda x:len(x))
print(a)
# 根据自定义规则,对元组构成的列表进行排序
b = [('A', 1, 5), ('B', 3, 2), ('C', 2, 6)]
a = sorted(b, key=lambda x:x[1])
print(a)

9.reversed()

对序列的元素进行反转操作

a = reversed('abcde')
print(a) # 输出: ['e','d', 'c', 'b', 'a'  ] 

b = reversed([2, 3, 4, 5])
print(list(b))  # 输出:[5, 4, 3, 2]

10.map()

map()会根据提供的函数,对指定的序列做映射,最终返回迭代器。
也就是说,map()函数会把序列里的每一个元素用指定的方法加工一遍,最终返回给你加工好的序列。

nums = [1, 2, 3, 4]
a = map(lambda x:x*x, nums)
print(list(a)) # 输出:[1, 4, 9, 16]

11.reduce()

对参数序列中元素进行累积

from functools import reduce
nums = [1, 2, 3, 4]
a = reduce(lambda x,y:x*y, nums)
print(a) # 输出:24


chars = ['a', 'p', 'p', 'l', 'e']
a = reduce(lambda x,y:x+y, chars)
print(a) # 输出:apple

12.filter()

过滤序列

nums = [1, 2, 3, 4, 5, 6]
a = filter(lambda x:x%2!=0, nums)
print(list(a)) # 输出:[1, 3, 5]

b = ['apple', 'watermelon', 'pear', 'banana']
a = filter(lambda x:'w' in x, b)
print(list(a)) # 输出:['watermelon']

13.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值