Python笔记--zip

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,返回一个由这些元组组成的列表。

x_data = [0, 1, 2, 3, 4]
y_data = [3, 5, 6, 7, 8]
new = zip(x_data, y_data)
print(*new)

输出是(我也不知道为啥没有方括号)

(0, 3) (1, 5) (2, 6) (3, 7) (4, 8)

如果我们想要同时分别访问x_data和y_data的元素

x_data = [0, 1, 2, 3, 4]
y_data = [3, 5, 6, 7, 8]
for x_val, y_val in x_data, y_data:
    print(x_val, y_val)

这样写是会报错的

Traceback (most recent call last):
  File "D:/我的文件/学习/pytorch/程序/main.py", line 66, in <module>
    for x_val, y_val in x_data, y_data:
ValueError: too many values to unpack (expected 2)

 

正确的写法是

x_data = [0, 1, 2, 3, 4]
y_data = [3, 5, 6, 7, 8]
for x_val, y_val in zip(x_data, y_data):
    print(x_val, y_val)

输出是

0 3
1 5
2 6
3 7
4 8

 

也可以将其只作为一个列表访问,列表里的每一个元素都是元组

x_data = [0, 1, 2, 3, 4]
y_data = [3, 5, 6, 7, 8]
for elem in zip(x_data, y_data):
    print(elem)

输出是

(0, 3)
(1, 5)
(2, 6)
(3, 7)
(4, 8)

 

对于一个列表,如果列表中每个元素中含有的字符个数相同,可以对每个元素同时一个个访问。

data = [(1, 2, 3), (4, 5, 6), (7, 8, 9), 'abc']
for a in data:
    print(a)

for x, y, z in data:
    print(x, y, z)

a = (x, y, z) 下面的for输出是将a中的每个字符都单独访问并命了名。

(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
abc
1 2 3
4 5 6
7 8 9
a b c

Process finished with exit code 0

 

posted @ 2021-09-13 22:19  奋斗的小仔  阅读(60)  评论(0编辑  收藏  举报