如何将嵌套列表转换为字典?

4

我正在处理一个任务,需要将嵌套的列表转换为字典,并从以下嵌套列表中分离代码。

data = [['ABC', "Tel", "12/07/2017", 1.5, 1000],['ACE', "S&P", "12/08/2017", 3.2, 2000],['AEB', "ENG", "04/03/2017", 1.4, 3000]] 

获取此内容

Code    Name    Purchase Date   Price   Volume
ABC     Tel     12/07/2017      1.5     1000
ACE     S&P     12/08/2017      3.2     2000
AEB     ENG     04/03/2017      1.4     3000

因此,剩余的值仍然在列表中,但作为键被标记到代码中。

请问有人可以对此提供建议吗?谢谢!


使用数据框比创建字典更好,以便将来更轻松地处理数据。 - Austin
第11行: 你的 datadic['info'] 正在获取一个包含索引为1、2和3的值的元组,例如: ('ENG','04/03/2017',1.4,3000)由于Austin Bria是Python新手,所以我更倾向于推荐rovyko的答案而不是David的答案。 - doriclazar
你的要求是矛盾的。如果你想要一个字典,那么你的表格是错误的。如果你想要一个表格,那么你的标题是错误的。请相应地进行编辑。 - Rusi
3个回答

2
你可以使用pandas的数据框架来完成这个任务:

最初的回答

import pandas as pd
data = [['ABC', "Tel", "12/07/2017", 1.5, 1000],['ACE', "S&P", "12/08/2017", 3.2, 2000],['AEB', "ENG", "04/03/2017", 1.4, 3000]] 

columns = ["Code","Name","Purchase Date","Price","Volume"]
df = pd.DataFrame(data, columns=columns)
print(df)

2
你可以使用字典推导式:

你可以使用字典推导式:

keys = ['Code','Name','Purchase Date','Price','Volume']

{k: v for k, *v in zip(keys, *data)}

结果:

{'Code': ['ABC', 'ACE', 'AEB'],
 'Name': ['Tel', 'S&P', 'ENG'],
 'Purchase Date': ['12/07/2017', '12/08/2017', '04/03/2017'],
 'Price': [1.5, 3.2, 1.4],
 'Volume': [1000, 2000, 3000]}

1
不错!Dictcomps 需要一些宣传! - Rusi
1
我认为这就是原始提问者最初想要的,尽管从问题中很难确定。 - rovyko

1
我假设您所说的字典是指一个字典列表,每个字典代表一行,其中头部作为键。
您可以这样做:
keys = ['Code','Name','Purchase Date','Price','Volume']
dictionaries = [ dict(zip(keys,row)) for row in data ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接