Python 对列表进行排序并分离不同的功能

Python 对列表进行排序并分离不同的功能,python,Python,所以给我一个列表,我应该把它分成两个列表,一个是公司名称,另一个是嵌套列表中的价格 ['Acer 481242.74\n', 'Beko 966071.86\n', 'Cemex 187242.16\n', 'Datsun 748502.91\n', 'Equifax 146517.59\n', 'Gerdau 898579.89\n', 'Haribo 265333.85\n'] 我使用以下代码正确地分隔名称: print('\n'.join(data)) namelist = [i.

所以给我一个列表,我应该把它分成两个列表,一个是公司名称,另一个是嵌套列表中的价格

['Acer 481242.74\n', 'Beko 966071.86\n', 'Cemex 187242.16\n', 'Datsun    748502.91\n', 'Equifax 146517.59\n', 'Gerdau 898579.89\n', 'Haribo 265333.85\n']
我使用以下代码正确地分隔名称:

print('\n'.join(data))
namelist = [i.split(' ', 1)[0] for i in data]
print(namelist)

但现在它想让我将所有价格从列表中分离出来,并将它们放在一个嵌套在一起的列表中,我不知道如何做到这一点。

要构建两个单独的列表,只需使用常规循环:

names = []
prices = []
for entry in data:
    name, price = entry.split()
    names.append(name)
    prices.append(price)
如果您需要将这些条目合并到一个列表中,则每个条目都是一个单独包含名称和价格的列表,只需像您那样在列表中拆分,但不要从结果中选择一个或另一个值:

names_and_prices = [entry.split() for entry in data]
我使用了不带参数的
str.split()
在任意空格上进行分割。这假设字符串中始终只有两个条目。您仍然可以限制拆分,但可以使用
None
作为第一个参数,并提前删除该行以分别删除
\n

names_and_prices = [entry.strip().split(None, 1) for entry in data]
“嵌套”方法的演示:

>>> data = ['Acer 481242.74\n', 'Beko 966071.86\n', 'Cemex 187242.16\n', 'Datsun    748502.91\n', 'Equifax 146517.59\n', 'Gerdau 898579.89\n', 'Haribo 265333.85\n']
>>> [entry.split() for entry in data]
[['Acer', '481242.74'], ['Beko', '966071.86'], ['Cemex', '187242.16'], ['Datsun', '748502.91'], ['Equifax', '146517.59'], ['Gerdau', '898579.89'], ['Haribo', '265333.85']]
split()。如果您根本不提供任何参数,它将在任何大小的空格上拆分

>>> data = ['Acer 481242.74\n', 'Beko 966071.86\n', 'Cemex 187242.16\n', 'Datsun    748502.91\n', 'Equifax 146517.59\n', 'Gerdau 898579.89\n', 'Haribo 265333.85\n']
>>> nested_list = [i.split() for i in data]
>>> nested_list
[['Acer', '481242.74'], ['Beko', '966071.86'], ['Cemex', '187242.16'], ['Datsun', '748502.91'], ['Equifax', '146517.59'], ['Gerdau', '898579.89'], ['Haribo', '265333.85']]
>>> print(*nested_list, sep='\n')
['Acer', '481242.74']
['Beko', '966071.86']
['Cemex', '187242.16']
['Datsun', '748502.91']
['Equifax', '146517.59']
['Gerdau', '898579.89']
['Haribo', '265333.85']

你能解释一下嵌套在一起是什么意思吗?对于给定的输入,您是否可以将预期的输出添加到问题中?