python基础笔记列表

113 阅读2分钟

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]