我有一個列表的其餘部分Python的壓縮列表的第一個元素與元素
mylist = [(0,0,0),(1,1,1),(2,2,2),(3,3,3)]
我希望能夠找到一個代碼保存方法與列表元素mylist[1:]
的其餘部分壓縮的第一要素mylist[0]
爲了得到一個新名單爲:
[((0,0,0),(1,1,1)),((0,0,0),(2,2,2)),((0,0,0),(3,3,3))]
我有一個列表的其餘部分Python的壓縮列表的第一個元素與元素
mylist = [(0,0,0),(1,1,1),(2,2,2),(3,3,3)]
我希望能夠找到一個代碼保存方法與列表元素mylist[1:]
的其餘部分壓縮的第一要素mylist[0]
爲了得到一個新名單爲:
[((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))]
我查看了編輯歷史記錄,以確保您沒有狙擊iCodez以獲得額外信用。你沒有。 +1 –
我不認爲zip
有必要在這裏。一個list comprehension將正常工作:
>>> 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。 –
不知道爲什麼你會想* *這樣做。 –