用ch连接列表元素

2024-06-10 00:46:00 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下列表:

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')"

这不是我想要的,我想知道我做错了什么?你知道吗


Tags: in元素列表forsmokelistprintjoin
3条回答

如果使用Python 3.6+,请尝试在列表理解中使用f-string格式:

[f'{i}:{j}' for i, j in f]

输出

['soybean:vegetable_oil', 'bay:smoke', 'gelatin:watermelon']

一种简单的方法是将^{}^{}一起使用:

list(map(':'.join, f))
# ['soybean:vegetable_oil', 'bay:smoke', 'gelatin:watermelon']

':'.join(str(d) for d in f)不连接列表元素,而不连接内部元组。你知道吗

使用以下列表:

[':'.join(x) for x in f]

示例

f = [('soybean', 'vegetable_oil'), ('bay', 'smoke'), ('gelatin', 'watermelon')]

print([':'.join(x) for x in f])
# ['soybean:vegetable_oil', 'bay:smoke', 'gelatin:watermelon']

相关问题 更多 >