如何将多个词典放入列表中

2024-09-27 21:29:47 发布

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

我创建了一本字典:

new_list = {}

这就给了,

    {'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'}
    {'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'}
    {'date': '11/9/20', 'day': '11', 'month': '9', 'year': '2020', 'cases': '28', 'deaths': '0', 
    'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 
    'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.16450983'}

但是现在我想把这本字典添加到一个列表中

dataset= [new_list] 

这就给了,

[{'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'}]
[{'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'}]
[{'date': '11/9/20', 'day': '11', 'month': '9', 'year': '2020', 'cases': '28', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.16450983'}]

然而,我试图得到的结果是(因此在开始和结束时只有“[]”),因为这样我就可以执行dataset[0:2](否则它会给我“Nonetype”对象不可订阅),并且它只会给前两个字典

[{'date': '13/09/2020', 'day': '13', 'month': '9', 'year': '2020', 'cases': '35', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.3090878'},
{'date': '12/9/20', 'day': '12', 'month': '9', 'year': '2020', 'cases': '34', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.22496971'},
{'date': '11/9/20', 'day': '11', 'month': '9', 'year': '2020', 'cases': '28', 'deaths': '0', 'countriesAndTerritories': 'Afghanistan', 'countryTerritoryId': 'AF', 'countryTerritoryCode': 'AFG', 'population2019': '38041757', 'continent': 'Asia', 'cumulativeper1000002Weeks': '1.16450983'}]

我的代码如下:

import csv
def read_dataset() -> List[Dict[str,str]]:
    dataset = []
    with open('covid-19.csv', 'r') as file:
        reader = csv.reader(file)
        no_head = next(reader, None)
       
        for row in reader:
            lst = [
                'date',
                'day', 
                'month', 
                'year',
                'cases', 
                'deaths', 
                'countriesAndTerritories', 
                'countryTerritoryId', 
                'countryTerritoryCode', 
                'population2019', 
                'continent',
                'cumulativeper1000002Weeks',
            ]
            new_list = {}
            for x in range(len(lst)):
                new_list[lst[x]] = row[x]
            dataset= [new_list]
            #print(dataset)
            
dataset = read_dataset()
print(dataset[0:2])

Tags: dateyearafdaycontinentcasesmonthdeaths
1条回答
网友
1楼 · 发布于 2024-09-27 21:29:47
import csv
def read_dataset() -> List[Dict[str,str]]:
    dataset = []
    with open('covid-19.csv', 'r') as file:
        reader = csv.reader(file)
        no_head = next(reader, None)
    
        for row in reader:
            lst = [
                'date',
                'day', 
                'month', 
                'year',
                'cases', 
                'deaths', 
                'countriesAndTerritories', 
                'countryTerritoryId', 
                'countryTerritoryCode', 
                'population2019', 
                'continent',
                'cumulativeper1000002Weeks',
            ]
            new_list = {}
            for x in range(len(lst)):
                new_list[lst[x]] = row[x]
            dataset.append(new_list)
            #print(dataset)
    return dataset
            
dataset = read_dataset()
print(dataset[0:2])

不同之处在于,您必须使用:

dataset.append(new_list)

functon,在新的_列表的末尾追加(这是一个dict,有点混乱,请注意变量名!)

相关问题 更多 >

    热门问题