list 列表
列表解包 unpack list
li = [23, 34, "列表3"]
n1, n2, n3 = li
print(f'{n1},{n2},{n3}')
n1, n2, *n3 = li
print(f'{n1},{n2},{n3}')
li1 = [23, 34, "列表3", "列表4", "列表5"]
n1, n2, *n3 = li1
print(f'{n1},{n2},{n3}')
list迭代
enumerate()
内置函数,用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
li1 = [23, 34, "列表3", "列表4", "列表5"]
for i in enumerate(li1):
print(i)
结果:
(0, 23)
(1, 34)
(2, '列表3')
(3, '列表4')
(4, '列表5')
还可以加起始下标
for i in enumerate(li1, 1):
print(i)
结果:
(1, 23)
(2, 34)
(3, '列表3')
(4, '列表4')
(5, '列表5')
iter
list1 = iter(li1)
print(type(list1)) #<class 'list_iterator'>
print(next(list1)) # 23
print(next(list1))
print(next(list1))
print(next(list1))
print(next(list1))
print(next(list1))
运行结果
<class 'list_iterator'>
23
34
列表3
列表4
列表5
Traceback (most recent call last):
File "/Users/danaogasumi/PycharmProjects/testLearn02/demo01.py", line 26, in <module>
print(next(list1))
StopIteration
map(function,list)
根据提供的函数对指定序列做映射
lis = [2, 4, 5, 6, 7]
print(list(map(lambda a: a*a, lis)))
print(list(map(lambda a: a+a, lis)))
结果:[4, 16, 25, 36, 49]
[4, 8, 10, 12, 14]
filter 过滤,生成新的list
print(list(filter(lambda a: a > 4, lis)))
结果[5, 6, 7]
reduce 函数会对参数序列中元素进行累积
from functools import reduce
sum1 = reduce(lambda x, y: x + y, lis)
print(sum1)
def add(x, y):
res = x + y
print(f'{x},{y}')
return res
sum2 = reduce(add, lis)
print(sum2)
结果
sum1:24
2,4
6,5
11,6
17,7
sum2:24
列表解析
lis = [2, 4, 5, 6, 7]
var = [i + i for i in lis if i > 4]
print(var)
[10, 12, 14]