首页 > 解决方案 > 如何组合 3 个列表来创建一个具有一个键和两个值的字典?

问题描述

我想知道如何使用这三个列表创建字典。coun_keys成为关键,months_values并且cases_values将成为价值观。

我只找到了可以使用该zip()功能拥有 key:的来源value,但我怎样才能拥有 key: value1, value2

def main(csvfile,country ,type ):
    with open(csvfile,"r") as file:
        if type.lower() == "statistics ":
            coun_keys = []
            months_values = []
            cases_values = []
            listname =[]
            coun_month={}

            for line in file:
                columns = (line.strip().split(","))
                listname.append(columns)

            listname.pop(0)

            for line in listname:
               date1 = line[3].split("/")
               coun_keys.append(str(line[2]))
               months_values.append(int(date1[1]))
               cases_values.append(int(line[4]))

标签: pythonlistdictionary

解决方案


你的意思是,比如:

list1 = [1, 2, 3]
list2 = 'abc'
list3 = [5, 6, 7]

print(dict(zip(list1,zip(list2, list3))))

#############################

具体来说,对于您的代码,我会将您想做的事情分解成碎片。首先定义您要对文件的每一行执行的操作:

def process_line(line):
    line  = line.strip().split(',')
    date1 = line[3].split("/")
    key   = str(line[2])
    month = int(date1[1])
    case  = int(line[4])
    return key,(month,case)

请注意,我将我想要的值分组到一个元组中,特别是,我希望 process_line 函数返回我的“键”和“值”(一对)。现在打开您的文件并处理以下行:

f = open(csvfile)
next(f) #Skip the first line
result = dict(process_line(line) for line in f)
f.close()

推荐阅读