我的目标是将k与k1中的每个项目连接起来,形成一个二元组列表。
k='john'
k1=['john', 'is', 'sleeping']
My attempt
y=[(x +',', k) for x in k1]
My output
[('john,', 'john'), ('is,', 'john'), ('sleeping,', 'john')]
Desired output
[('john', 'john'), ('is' , 'john'), ('sleeping' , 'john')]
我只是想在每个二元组中的第一个单词之后删除逗号。
感谢您的建议。
答案 0 :(得分:2)
k='john'
k1=['john', 'is', 'sleeping']
print [(i, k) for i in k1]
<强>输出强>
[('john', 'john'), ('is', 'john'), ('sleeping', 'john')]
如果k1
和k
k
和k1
制作笛卡尔积
k=['john']
k1=['john', 'is', 'sleeping']
from itertools import product
print [item for item in product(k1, k)]
答案 1 :(得分:1)
那是如此接近,你自己加了。删除+ ','
,您就完成了!
y=[(x, k) for x in k1]
我认为你不需要它,但为了这个答案的完成,这是一个演示:
>>> k='john'
>>> k1=['john', 'is', 'sleeping']
>>> y=[(x, k) for x in k1]
>>> y
[('john', 'john'), ('is', 'john'), ('sleeping', 'john')]
希望这有帮助!
答案 2 :(得分:0)
您可以使用zip
。我更喜欢使用python inbuilts。
k=['john']
k1=['john', 'is', 'sleeping']
zip(k1, k*len(k1))
#output:
[('john', 'john'), ('is', 'john'), ('sleeping', 'john')]