1. 程式人生 > >python-Zip方法

python-Zip方法

list() orm 得到 data ans 轉置 spa int IV

zip 返回一個將多個可叠代對象組合成一個元組序列的叠代器。

1. 循環多個list的數據:

1 letters = [a, b, c]
2 nums = [1, 2, 3]
3 
4 for letter, num in zip(letters, nums):
5     print("{}: {}".format(letter, num))

2. 將多個list的數據組合成tuple的list:

1 list(zip([a, b, c], [1, 2, 3])) 
2 
3 # 得到: [(‘a‘, 1), (‘b‘, 2), (‘c‘, 3)].

3. 將tuple組成的list拆分成多個tuple:

1 some_list = [(a, 1), (b, 2), (c, 3)]
2 letters, nums = zip(*some_list)
3 
4 #結果 
5 # letters: (‘a‘, ‘b‘, ‘c‘)
6 # nums: (1, 2, 3)
7          

*註意,即使不是list,而是tuple,依然可以拆分,拆分後的結果都是tuple:

some_list = ((a, 1), (b, 2), (c, 3))
letters, nums = zip(*some_list)

#結果同上 

*註意,即使不是tuple,是list,依然可以拆分,拆分後的結果都是tuple:

some_list = [[a, 1], [b, 2], [c, 3]]
letters, nums = zip(*some_list)

舉個栗子:

# 將 data 從 4x3 矩陣轉置成 3x4 矩陣。

data = ((0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11))

data_transpose = zip(*data)

# 結果:
[(0, 3, 6, 9), (1, 4, 7, 10), (2, 5, 8, 11)]

*值得註意的是:

zip 用於整合數據的時候,返回的是一個可叠代的叠代器,可以用來循環,也可以通過 list()

, tuple() 方法把它變成list或tuple

zip 用於拆分數據的時候,可以拆分list,拆分tuple,但返回的總是一個list,並且list的每個元素都是tuple

python-Zip方法