python - 如何使用字典为键分配多个值?
问题描述
我有一个 csv 文件,其中包含(视频游戏的)名称、平台、流派、出版商等。我正在尝试创建 3 个单独的字典。字典一很容易,因为使用的关键是一个独特的视频游戏的标题。
对于第 2 和第 3 字典,我遇到了问题,因为键"Genre"
并且"Publisher"
不是唯一的。我试图D2
看起来像:
D2 = { 'Puzzle' : [(tup2),(tup2], 'Another genre': [(tup2)]...}
因为有多个游戏具有相同的类型。
import csv
fp = open("video_game_sales_tiny.csv", 'r')
fp.readline()
reader = csv.reader(fp)
D1 = {}
D2 = {}
D3 = {}
for line in reader:
name = line[0].lower().strip()
platform = line[1].lower().strip()
if line[2] in (None, 'N/A'):
pass
else:
year = int(line[2])
genre = line[3].lower().strip()
publisher = line[4]
na_sales = float(line[5])
europe_sales = float(line[6])*1000000
japan_sales = float(line[7])*1000000
other_sales = float(line[8])*1000000
global_sales = (europe_sales + japan_sales + other_sales)
tup = (name,platform, year,genre, publisher, global_sales)
tup2 = (genre, year, na_sales, europe_sales, japan_sales, other_sales, global_sales)
tup3 = (publisher, name, year, na_sales, europe_sales, japan_sales, other_sales, global_sales)
D1[name] = tup
D2[genre] = tup2
D3[publisher] = tup3
print(D1)
print(D2)
print(D3)
解决方案
您应该为(例如)创建条目genre
作为列表,然后附加到列表中。
if not genre in D2:
D2[genre] = []
D2[genre].append(tup2)
推荐阅读
- fractions - 如何在 dafny 中证明分数加法
- ruby-on-rails - Ruby on Rails - 使用日志记录批量插入数据
- data-warehouse - Kimball 的数据仓库工具包 - 何时重命名日期外键
- java - GIT Sparse 特定 Baeldung 存储库
- .net - 如何区分 Outlook 文件夹以仅返回可见文件夹?
- python - 在一个窗口中显示多个摄像机
- server - 无法加载文件或程序集“KT”或其依赖项之一。试图加载格式不正确的程序
- python - 几个ephocs后损失是nan
- c - CMake build - ld 报告 collect2 错误,找不到库,但正确设置了库的路径
- artifactory - Gradle kotlin dsl with jfrog artifactory plugin - 禁用发布构建信息