Python 删除元组并将元组中的两个值合并到一个项目中

Python remove tuples and merge the two values from tuples inside them to one item

我有类似的列表:

[('name', ''),
 ('season', ''),
 ('company', ''),
 ('date', ''),
 ('mean value', 1),
 ('mean value', 2),
 ('mean value', 3),
 ('mean value', 4)]

我想去掉元组并合并两个值(如果存在),以获得以下列表:

['name',
 'season',
 'company',
 'date',
 'mean value 1',
 'mean value 2',
 'mean value 3',
 'mean value 4']

我不确定该怎么做,正在寻找有效的方法。

list(map(lambda t: " ".join(map(str, t)), mylist))

[" ".join(map(str, t)) for t in mylist]

编辑:删除了 lambda,感谢@Timus

我认为这段代码很容易理解并且有效。

tup = [('name', ''),('season', ''),('company', ''),('date', ''),('mean value', 1),('mean value', 2),('mean value', 3), ('mean value', 4)]

def func(value):
    string = ''
    for a in value:
        string += str(a)
        string+=' '
    return string.strip()
result = list(map(func,tup))

如果要添加space (mean value 4):

[f"{a} {b}".strip() for a, b in lst]

如果您不需要 space ('mean value4'):

[f"{a}{b}" for a, b in lst]

注意:此答案仅适用于长度为 2 的元组

在列表理解中 if-else 怎么样

stuff = [('name', ''),('season', ''),('company', ''),('date', ''),('mean value', 1),('mean value', 2),('mean value', 3), ('mean value', 4)]

joined = [f'{a} {b}' if b else a for a, b in stuff]
print(joined)

检查这个:

test_list = [('name', ''),('season', ''),('company', ''),('date', ''),('mean value', 1),('mean value', 2),('mean value', 3), ('mean value', 4)]
new_list = []
for item in test_list:
    new_list.append(' '.join(map(str,item)).strip())