python创建嵌套字典_如何在Python中创建嵌套字典?

斯蒂芬大帝

嵌套字典是字典中的字典。非常简单的事情。>>> d = {}>>> d['dict1'] = {}>>> d['dict1']['innerkey'] = 'value'>>> d{'dict1': {'innerkey': 'value'}}你也可以使用一个defaultdict从collections包装,以方便创建嵌套的字典。>>> import collections>>> d = collections.defaultdict(dict)>>> d['dict1']['innerkey'] = 'value'>>> d  # currently a defaultdict typedefaultdict(, {'dict1': {'innerkey': 'value'}})>>> dict(d)  # but is exactly like a normal dictionary.{'dict1': {'innerkey': 'value'}}您可以根据需要填充。我建议在你的代码的东西像下面:d = {}  # can use defaultdict(dict) insteadfor row in file_map:    # derive row key from something     # when using defaultdict, we can skip the next step creating a dictionary on row_key    d[row_key] = {}     for idx, col in enumerate(row):        d[row_key][idx] = col根据您的评论:可能上面的代码令人困惑。我的问题简而言之:我有2个文件a.csv b.csv,a.csv有4列ijkl,b.csv也有这些列。我是这些csv的关键列。jkl列在a.csv中为空,但在b.csv中填充。我想使用'i`作为键列将b.csv中的jk l列的值映射到a.csv文件我的建议是什么像这样(不使用defaultdict):a_file = "path/to/a.csv"b_file = "path/to/b.csv"# read from file a.csvwith open(a_file) as f:    # skip headers    f.next()    # get first colum as keys    keys = (line.split(',')[0] for line in f) # create empty dictionary:d = {}# read from file b.csvwith open(b_file) as f:    # gather headers except first key header    headers = f.next().split(',')[1:]    # iterate lines    for line in f:        # gather the colums        cols = line.strip().split(',')        # check to make sure this key should be mapped.        if cols[0] not in keys:            continue        # add key to dict        d[cols[0]] = dict(            # inner keys are the header names, values are columns            (headers[idx], v) for idx, v in enumerate(cols[1:]))但是请注意,用于解析csv文件的是csv模块。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值