Python将列表的第一个元素与其余元素压缩在一起
我有一张单子Python将列表的第一个元素与其余元素压缩在一起,python,list,Python,List,我有一张单子 mylist = [(0,0,0),(1,1,1),(2,2,2),(3,3,3)] 我希望找到一种代码保存方法,将第一个元素mylist[0]与列表元素的其余部分mylist[1://code>压缩,以获得一个新列表,如下所示: [((0,0,0),(1,1,1)),((0,0,0),(2,2,2)),((0,0,0),(3,3,3))] 使用zip: >>> mylist = [(0,0,0),(1,1,1),(2,2,2),(3,3,3)] >&g
mylist = [(0,0,0),(1,1,1),(2,2,2),(3,3,3)]
我希望找到一种代码保存方法,将第一个元素mylist[0]
与列表元素的其余部分mylist[1://code>压缩,以获得一个新列表,如下所示:
[((0,0,0),(1,1,1)),((0,0,0),(2,2,2)),((0,0,0),(3,3,3))]
使用zip
:
>>> mylist = [(0,0,0),(1,1,1),(2,2,2),(3,3,3)]
>>> zip([mylist[0]]*(len(mylist)-1), mylist[1:])
[((0, 0, 0), (1, 1, 1)), ((0, 0, 0), (2, 2, 2)), ((0, 0, 0), (3, 3, 3))]
列表理解更简单:
>>> [ (mylist[0], sublist) for sublist in mylist[1:] ]
[((0, 0, 0), (1, 1, 1)), ((0, 0, 0), (2, 2, 2)), ((0, 0, 0), (3, 3, 3))]
我认为这里没有必要使用zip
。A很好:
>>> mylist = [(0,0,0),(1,1,1),(2,2,2),(3,3,3)]
>>> [(mylist[0], x) for x in mylist[1:]]
[((0, 0, 0), (1, 1, 1)), ((0, 0, 0), (2, 2, 2)), ((0, 0, 0), (3, 3, 3))]
>>>
使用地图:
map(lambda x:(mylist[0],x),mylist[1:])
输出:
[((0, 0, 0), (1, 1, 1)), ((0, 0, 0), (2, 2, 2)), ((0, 0, 0), (3, 3, 3))]
+1但是地图只是理解的一半,有一个笨拙的lambda。我不知道你为什么要这么做。我检查了编辑历史,以确保你没有为了额外的学分而狙击iCodez。你没有+1.