我需要一些关于 Python 作业的帮助。任务是使用来自其他字典的键和来自 csv 文件的值制作字典。所有这些都需要使用带参数的函数来完成(另一个字典,the_csv_file)另一本字典是这样的:{1: 'Bob West', 2: 'Hannah North', 3: 'Bruce South', 4: 'Anna Bell', 5: 'George Smith'}我从一个函数中得到了那本字典def names_dictionary(): with open("filename.csv", 'r') as d: x = {num+1:name.split(" ",1)[-1].strip() for (num, name) in enumerate(d)} print(x)从这本字典中,我需要将值(名称)作为新字典中的键。CSV 文件在 excel 中如下所示 A B1.1 112.3 123.2 144.7 115.5 12A 列中的所有内容。从这里开始,我希望每一行中的第二个数字成为新字典中的值。所以 (11, 12, 14, 11, 12)。我想要的结果字典是{’Bob West’: 11, ’Hannah North’: 12, ’Bruce South’: 14, ’Anna Bell’: 11, ’George Smith’: 12}功能到此为止。def names(names_dictionary, csvfile):最后我需要一个主函数来组合和输出:Bob West 得到 11 个香蕉 Hannah North 得到 12 个香蕉 Bruce South 得到 14 个香蕉 Anna bell 得到 11 个香蕉 George Smith 得到 12 个香蕉
1 回答

杨魅力
TA贡献1811条经验 获得超6个赞
此处已经介绍了如何从 csv 文件中读取列。
我假设您已经构建了一个colB包含 values的列表[11, 12, 14, 11, 12]。如果d是你原来的字典,你现在可以使用字典理解
{v:colB[k - 1] for k, v in d.items()}
来构造结果。
演示:
>>> d = {1: 'Bob West', 2: 'Hannah North', 3: 'Bruce South', 4: 'Anna Bell', 5: 'George Smith'}
>>> colB = [11, 12, 14, 11, 12]
>>> result = {v:colB[k - 1] for k, v in d.items()}
>>> result
{'Bob West': 11, 'Hannah North': 12, 'Bruce South': 14, 'Anna Bell': 11, 'George Smith': 12}
我相信你会自己弄清楚印刷的。
添加回答
举报
0/150
提交
取消