Python移除元组,并将元组中的两个值合并为一个项



我有一个类似的列表:

[('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']

我不知道如何做到这一点,正在寻找有效的方法。

如果要添加空格(mean value 4(:

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

如果您不需要空间('mean value4'(:

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

注意:这个答案只适用于长度为2 的元组

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

列表理解中的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())

最新更新