Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将2元组列表拆分为两个列表?_Python_List - Fatal编程技术网

Python 如何将2元组列表拆分为两个列表?

Python 如何将2元组列表拆分为两个列表?,python,list,Python,List,我有很多2元组的列表。 我想把列表分成两个列表,一个列表由列表中所有元组的第一个元素组成,另一个列表由所有元组的第二个元素组成。我想知道如何有效地做到这一点?谢谢 例如,我有一个列表y: >>> y = [('ab',1), ('cd', 2), ('ef', 3) ] >>> type(y) <type 'list'> y=[('ab',1),('cd',2),('ef',3)] >>>类型(y) 我希望得到两个列表['ab',cd','ef

我有很多2元组的列表。 我想把列表分成两个列表,一个列表由列表中所有元组的第一个元素组成,另一个列表由所有元组的第二个元素组成。我想知道如何有效地做到这一点?谢谢

例如,我有一个列表
y

>>> y = [('ab',1), ('cd', 2), ('ef', 3) ]
>>> type(y)
<type 'list'>
y=[('ab',1),('cd',2),('ef',3)] >>>类型(y) 我希望得到两个列表
['ab',cd','ef']
[1,2,3]
使用和一个:

是你所需要的一切

或者如果您需要它们作为列表而不是元组

a,b = map(list,zip(*y))
使用
*
参数解包将为您提供元组:

>>> a, b = zip(*y)
>>> a
('ab', 'cd', 'ef')
>>> b
(1, 2, 3)
如果您需要列表,您可以在上面使用:

试试这个:

def get_list(tuples):
    list1 = []
    list2 = []
    for i in tuples:
        list1.append(i[0])
        list2.append(i[1])
    return list1, list2
y = [('ab',1), ('cd', 2), ('ef', 3) ]
letters, numbers = get_list(y)

一种方法是首先将列表转换为临时字典,然后将临时字典的键和值分配到两个列表中

y = [('ab', 1), ('cd', 2), ('ef', 3)]
temp_d = dict(y)
list1 = temp_d.keys()
list2 = temp_d.values()

print list1
print list2

将每个值附加到另一个

我认为将其解包到a、b将自动将每个值转换到列表中。。。例如:
a,b=zip(*[(1,2),(3,4)];印刷品(a);印刷品(b)@JoranBeasley-不,它们将是元组。啊,明白了。。。错过了那场比赛,因为他们的顽强。内置的
zip
可能会更快,但请注意,这只适用于Python2.x。在Python3.x中,
dict.keys
dict.values
返回。我不知道。如何使用此技术修改代码?需要显式地将视图对象转换为列表。换句话说,您将执行此操作
list1=list(temp\u d)
,然后执行此操作
list2=list(temp\u d.values())
。请注意,在第一个示例中,我删除了对
dict.keys
的调用。它不再需要,因为迭代字典会产生它的键。最后,只有在使用Python3.x时才需要这样做。在Python2.x中,您当前的代码可以正常工作,因为
dict.keys
dict.values
返回列表。[Python新手]哇!这比预期的要容易:)
>>> a, b = map(list, zip(*y))
>>> a
['ab', 'cd', 'ef']
>>> b
[1, 2, 3]
def get_list(tuples):
    list1 = []
    list2 = []
    for i in tuples:
        list1.append(i[0])
        list2.append(i[1])
    return list1, list2
y = [('ab',1), ('cd', 2), ('ef', 3) ]
letters, numbers = get_list(y)
y = [('ab', 1), ('cd', 2), ('ef', 3)]
temp_d = dict(y)
list1 = temp_d.keys()
list2 = temp_d.values()

print list1
print list2
l1 = []
l2 = []
for i in y:
    l1.append(i[0])
    l2.append(i[1])
l1
    ['ab', 'cd', 'ef']
l2
    [1, 2, 3]