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