假设我有这个列表a = ["test", "news", "hello"]
,我需要复制列表中的每个值,并将其分隔为这样的分隔符。
a = [("test","test"),("news","news"),("hello","hello")]
我已经尝试了这一点并且只做到了这一点。
a = ["test", "news", "hello"]
b = [l + (''.join(l,)) for l in a]
print(b)
#['testtest', 'newsnews', 'hellohello']
答案 0 :(得分:4)
你可以这样做:
a = ["test", "news", "hello"]
>>> print [(i,)*2 for i in a] #thanks to @JonClements for the suggestion
[('test', 'test'), ('news', 'news'), ('hello', 'hello')]
答案 1 :(得分:2)
我认为最“pythonic”(和最短)的方式是每个人最喜欢的内置混乱,zip
:
a = ["test", "news", "hello"]
print zip(a,a)
>>> [('test', 'test'), ('news', 'news'), ('hello', 'hello')]
并且,为了完整性,我将指出在python 3中,zip
返回一个可迭代的。所以为了让它打印得很好,你需要对它进行分类:list(zip(a,a))
。但是,如果您想要迭代它,使用数据做事情,那么您将希望保持可迭代。 (长列表可能节省大量内存)。