2016-08-12 57 views
0

我有一个字符串,我想与列表中的每个元素配对。在列表中创建一个字符串和一个元素的对

str = "era" 
list = ["we", "st"] 

随着代码:

zip(str, list) 

我获得

[('e', 'we'), ('r', 'st')] 

我想实现的是对的元组的列表:

[('era', 'we'), ('era', 'st')] 

是有一个简单的方法来解决分裂o字符串?谢谢!!

回答

7

列表理解如何?

str = 'era' 
list = ['we', 'st'] 
packed = [(str,str2) for str2 in list] 
+2

当它。你打我吧;) –

2

使用itertools.product

import itertools 

ss = "era" 
lst = ["we", "st"] 
print list(itertools.product([ss], lst)) 

避免使用关键字作为变量,如列表

+0

这是一种矫枉过正的想法,但我测试了它的长度为1000,并且你的答案比我的列表理解快大约5倍 – Anonymous

0

以为我会提供替代@jphollowed的简单和简洁的答案。

s = "era" 
l = ["we", "st"] 
print([tuple(i.split(',')) for i in map(lambda x: x+','+s, l)]) 
+0

更不可读,imo。不知道它在速度上提供了什么,虽然 – Anonymous

+0

哦,我绝对同意,你只是殴打每个人到最pythonic答案啊,所以认为我只是提供一个替代方法,好奇的缘故。 – ospahiu

+0

嗯,我不能得到它的工作; 'TypeError:只能连接元组(不是“str”)到元组' – Anonymous

相关问题