python - 如何组合 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]))
解决方案
你的意思是,比如:
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()
推荐阅读
- python - 自定义渲染器破坏站点
- sql-server - 查询 Outlook 服务器以获取日历项目和详细信息
- asp.net - 如果重新验证有效,如何启用按钮
- php - 在 Windows 中的 PHP 中,“换行 (LF)”和“回车 (CR)”是否表示相同的意思?
- c - 限制为数组大小的目的是什么?
- css - 为什么 Columns 类中的子项以单行显示?
- c# - 为什么在这里寻找 VsixUtil.exe 的东西?
- python - python:在Itertools产品对象上调用set第二次清除数据
- r - 因子子集和条件的 tapply vs 循环
- ios - 滚动视图自动布局中的图像 swift 4