我对Python很陌生,我尝试组合两个列表中的元素并从组合中生成一个字符串。
我的变数是:
fro = ['USD']
to = ['AUD', 'CAD', 'EUR']
我希望在字符串中输出如下:
pairs = "USDAUD,USDCAD,USDEUR"
提前感谢您的帮助。
答案 0 :(得分:6)
为什么不使用这样的generator expression:
fro = ['USD']
to = ['AUD', 'CAD', 'EUR']
pairs = ','.join(fro[0] + x for x in to)
请注意from
是保留关键字,因此不是有效的变量名。
<强> 输出: 强>
>>>pairs
'USDAUD,USDCAD,USDEUR'
如果您对是否希望用作变量名称的某些内容是关键字(因此是非法变量名称)感到好奇,您可以随时查看以下内容:
>>> import keyword
>>> keyword.iskeyword("from")
True
答案 1 :(得分:0)
Elizion的答案很简洁,但作为一个初学者,你可能想要在不使用像生成器这样的中间/高级结构的情况下接近它:
fro = ['USD']
to = ['AUD', 'CAD', 'EUR']
pairs = ""
for word in to:
pairs += fro[0] + word + ","
删除尾随逗号:
pairs = pairs[:-1]
答案 2 :(得分:-1)
伊丽莎白是绝对正确的。
如果列表元素动态变化,可以使用以下行:
绝对pythonic方式!!
pair_elem = ','.join('%s%s' % (x, y) for y in to for x in fro)
传统方式就像迭代列表元素:
for multiple in to:
for single in fro:
pairs = ",".join(single + multiple)