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.7key=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]
将是第一个元素。