我有一个这样的名单: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