Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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如何解压缩列表中的元素,zip(*)不';我不工作_Python_Zip - Fatal编程技术网

python如何解压缩列表中的元素,zip(*)不';我不工作

python如何解压缩列表中的元素,zip(*)不';我不工作,python,zip,Python,Zip,我写了这个程序,在那里我需要列出一个名字列表,按字母顺序排列姓氏,名字在前面。 这就是我目前所做的: firstnames = ['good', 'bad', 'tall', 'big'] lastnames = ['boy', 'girl', 'guy', 'man'] list3 = [a + b for a, b in zip(firstnames, lastnames)] l3 = sorted(list3) n = len(l3) l4 = zip(*[l3]) print l3 pr

我写了这个程序,在那里我需要列出一个名字列表,按字母顺序排列姓氏,名字在前面。 这就是我目前所做的:

firstnames = ['good', 'bad', 'tall', 'big']
lastnames = ['boy', 'girl', 'guy', 'man']
list3 = [a + b for a, b in zip(firstnames, lastnames)]
l3 = sorted(list3)
n = len(l3)
l4 = zip(*[l3])
print l3
print l4

zip*将元素转换成元组,但是如何再次分离元素,并以不同的顺序连接它们呢

一旦你完成了
a+b
你就不能把它们分开。您已经将字符串连接在一起,结果中没有任何内容指示字符串的哪个部分是firstname,哪个部分是lastname

对来自
zip
的元组进行排序:

print sorted(zip(firstnames, lastnames), key = lambda pair: pair[1])
一旦它们被排序,就可以连接字符串

另外,请注意,您可以按其他顺序压缩它们,然后它们将按姓氏排序,而无需指定
key

print [b + a for a, b in sorted(zip(lastnames, firstnames))]

完成
a+b
后,就无法将它们分开。您已经将字符串连接在一起,结果中没有任何内容指示字符串的哪个部分是firstname,哪个部分是lastname

对来自
zip
的元组进行排序:

print sorted(zip(firstnames, lastnames), key = lambda pair: pair[1])
一旦它们被排序,就可以连接字符串

另外,请注意,您可以按其他顺序压缩它们,然后它们将按姓氏排序,而无需指定
key

print [b + a for a, b in sorted(zip(lastnames, firstnames))]

我认为您只需要使用一次zip:

ans = ['%s %s' % (first, last) for (first, last) in zip(firstnames, sorted(lastnames))]

我认为您只需要使用一次zip:

ans = ['%s %s' % (first, last) for (first, last) in zip(firstnames, sorted(lastnames))]

您使用的是什么版本的Python?您想要什么输出?您拥有的代码似乎只想拥有列表的另一个副本,您可以使用
l4=l3[:]
或许多其他方法来完成。您如何再次分离这些项目
l3
['badgirl'、'bigman'、'goodboy'、'tallguy']
:您已将字符串连接在一起。代码如何知道如何将
goodboy
分为
good
boy
?哦,对不起,我使用的是2.7,您使用的是什么版本的Python?您想要什么输出?您拥有的代码似乎只想拥有列表的另一个副本,您可以使用
l4=l3[:]
或许多其他方法来完成。您如何再次分离这些项目
l3
['badgirl'、'bigman'、'goodboy'、'tallguy']
:您已将字符串连接在一起。代码怎么知道要将
goodboy
分为
good
boy
?噢抱歉,我使用的是2.7
key=lambda pair:pair[1]
意味着它使用pair中的第一个元素对元组对列表进行排序?对于
[('c',-1),('a',1),('b':0)]
变成=
[('a',1),('b':0),('c',-1)]
我说得对吗?这有帮助是的,我应该按顺序排序。@GrijeshChauhan:差不多
pair[1]
是该对中的第二个元素,
pair[0]
将是第一个元素。
key=lambda pair:pair[1]
表示它使用该对中的第一个元素对元组对列表进行排序?对于
[('c',-1),('a',1),('b':0)]
变成=
[('a',1),('b':0),('c',-1)]
我说得对吗?这有帮助是的,我应该按顺序排序。@GrijeshChauhan:差不多<代码>对[1]是对中的第二个元素,
对[0]
将是第一个元素。