如何使用来自其他字典的键和来自 Python 中的 csv 文件的值制作字典?

我需要一些关于 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                         B


1.1 11

2.3 12

3.2 14

4.7 11

5.5 12

A 列中的所有内容。


从这里开始,我希望每一行中的第二个数字成为新字典中的值。所以 (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 个香蕉


宝慕林4294392
浏览 122回答 1
1回答

杨魅力

此处已经介绍了如何从 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}我相信你会自己弄清楚印刷的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python