从列表的每个列表创建索引i的新元组

时间:2016-07-03 01:25:15

标签: python list tuples list-comprehension

我有下面的列表名为mylist,我想从每个列表中获取第一个元素并创建一个元组。我想对列表列表中的所有n个元素执行此操作。

mylist = [[1,2,3], ['a', 'b', 'c'], [5, 8, 10], [100, 200, 30]]

转换为

mytuple = ((1,'a', 5, 100) ,(2,'b', 8, 200), (3,'c',10, 30))

我已经成功完成了以下步骤,我确信有更好的方法:)

i = 0;
while(i < n):
    templist = (x[i] for x in mylist)
    newlist.append(tuple(templist))
    i += 1
ftuple = tuple(newlist) 

我已经看过这个链接但是却找不到更简单的方法 SOlink1 Solink2

2 个答案:

答案 0 :(得分:3)

zip就是您所需要的:

grep

答案 1 :(得分:1)

你可以使用pandas数据框。

import pandas as pd

mylist = [[1,2,3], ['a', 'b', 'c'], [5, 8, 10], [100, 200, 30]]

df = pd.DataFrame(mylist).transpose()

print(df.values)
array([[1, 'a', 5, 100],
       [2, 'b', 8, 200],
       [3, 'c', 10, 30]], dtype=object)

对于完全相同形式的解决方案:

tuple([tuple(row) for row in df.values])
((1, 'a', 5, 100), (2, 'b', 8, 200), (3, 'c', 10, 30))