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())
我有类似的列表:
[('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())