假设我有以下列表:
f=[('soybean', 'vegetable_oil'), ('bay', 'smoke'), ('gelatin', 'watermelon')]
我想加入每个元素,这样我就可以得到
['soybean:vegetable_oil', 'bay:smoke', 'gelatin:watermelon']
为此,我执行以下操作:
list=[]
for i in f:
s=':'
list=s.join(f)
print(list)
但因此返回:
TypeError: sequence item 0: expected string, tuple found
我意识到也有类似的问题here但是当我这样做的时候
':'.join(str(d) for d in f)
我得到:
"('soybean', 'vegetable_oil'):('bay', 'smoke'):('gelatin', 'watermelon')"
这不是我想要的,我想知道我在这里做错了什么?
请您参考如下方法:
如果使用 Python 3.6+,请尝试使用带有列表理解的 f 字符串格式:
[f'{i}:{j}' for i, j in f]
输出
['soybean:vegetable_oil', 'bay:smoke', 'gelatin:watermelon']
