python嵌套列表到字典

2024-10-01 17:39:13 发布

您现在位置:Python中文网/ 问答频道 /正文

把这个列表转换成字典的最好方法是什么(称之为my_dict),这样它就可以被索引了?在

my_dict[i]['name']
my_dict[i]['stars']
my_dict[i]['price']

基本上,my_dict[0]会告诉我关于'CalaBar & Grill'的一切。在

列表如下:

^{pr2}$

Tags: 方法name列表字典mypricedictstars
3条回答

这里有一种用香草python实现列表理解的方法。假设您给出的2D列表存储在my_list

keys = ['name', 'stars', 'price']
my_dict = [dict(zip(keys, values)) for values in my_list]

zip(k, v)获取两个列表并将它们映射到类似字典的结构中,这样k是键,每个{}是相应的值。不过,您确实需要将结果强制转换为dict。在

您可以用dict构造函数中的相应值压缩所需子dict的键(假设您的列表存储在变量l)中:

[dict(zip(('name', 'stars', 'price'), i)) for i in l]

这将返回:

^{pr2}$

这应该是有效的:

# The list
my_list = [['CalaBar & Grill', '4.0 star rating', '$$'], \
 ['Red Chili Cafe', '4.0 star rating', '$$'],\
 ['Gus’s World Famous Fried Chicken', '4.0 star rating', '$$'],\
 ['South City Kitchen - Midtown', '4.5 star rating', '$$'],\
 ['Mary Mac’s Tea Room', '4.0 star rating', '$$'],\
 ['Busy Bee Cafe', '4.0 star rating', '$$'],\
 ['Richards’ Southern Fried', '4.0 star rating', '$$'],\
 ['Greens & Gravy', '3.5 star rating', '$$'],\
 ['Colonnade Restaurant', '4.0 star rating', '$$'],\
 ['South City Kitchen Buckhead', '4.5 star rating', '$$'],\
 ['Poor Calvin’s', '4.5 star rating', '$$'],\
 ['Rock’s Chicken & Fries', '4.0 star rating', '$'],\
 ['Copeland’s', '3.5 star rating', '$$']]

# initialize an empty list
my_dict = []

# create list of dictionary
for elem in my_list:
    temp_dict = {}
    temp_dict['name'] = elem[0]
    temp_dict['stars'] = elem[1]
    temp_dict['price'] = elem[2]
    my_dict.append(temp_dict)


# testing
print(my_dict[1]['stars'])
print(my_dict[5]['price'])
print(my_dict[0]['name'])
print(my_dict[7]['stars'])

相关问题 更多 >

    热门问题