我有一個這樣的名單:Python中插入一個列表清單
a = ["a","b","c","d","e"]
如何插入一個詞列表中的每個項目的結束,讓他們作爲列表本身?
預期輸出:
a = [("a","TEST"),("b","TEST"),("c","TEST"),("d","TEST"),("e","TEST")]
我已經嘗試了很多辦法,但沒有運氣得到那個。
我有一個這樣的名單:Python中插入一個列表清單
a = ["a","b","c","d","e"]
如何插入一個詞列表中的每個項目的結束,讓他們作爲列表本身?
預期輸出:
a = [("a","TEST"),("b","TEST"),("c","TEST"),("d","TEST"),("e","TEST")]
我已經嘗試了很多辦法,但沒有運氣得到那個。
創建的項目和所期望的字一個元組:
word = "TEST"
a = ["a","b","c","d","e"]
new_a = [(i, word) for i in a]
輸出:
[('a', 'TEST'), ('b', 'TEST'), ('c', 'TEST'), ('d', 'TEST'), ('e', 'TEST')]
另外,使用map
:
new_a = list(map(lambda x: (x, "TEST"), a))
您可以使用zip
:
a = ["a","b","c","d","e"]
new_a = zip(a, ["TEST"] * len(a))
輸出:
[('a', 'TEST'), ('b', 'TEST'), ('c', 'TEST'), ('d', 'TEST'), ('e', 'TEST')]
使用zip_longest
從itertools
模塊像下面的另一種方法(但在溶液去與應Ajax1234's一個列表中的理解使用元組):
from itertools import zip_longest
l = ['a', 'b', 'c', 'd', 'e']
res = list(zip_longest(l, ['TEST'], fillvalue='TEST'))
輸出:
>>> res
[('a', 'TEST'), ('b', 'TEST'), ('c', 'TEST'), ('d', 'TEST'), ('e', 'TEST')]
不是很時尚,但類似於其他常用的語言:
a = ["a","b","c","d","e"]
b = []
for x in a:
b.append ((x, 'TEST'))
a = b
print a
也許在解決方案中添加兩個列表 – Abe
對不起,我又來打擾,有沒有什麼辦法,以消除「一」和「測試」之間的空間?我需要解壓它爲分類器功能 –
@KennyC這個空間是自然的Python語法。 '('a','TEST')'等價於'(「a」,「TEST」)'。 – Ajax1234
請勿使用地圖。列表解析更爲pythonic – syntacticmarmalade