在不使用更新功能的情况下在嵌套字典中创建密钥

时间:2017-05-02 13:42:04

标签: python dictionary key

输入:

{'Name': 'A','Blood Group': 'O +ve', 'Age': '1', 'Sex': 'M','Phone  Number': '01234567', 'Mobile Number': '9876543210', 'Date of Birth': '01-01-95'}

1

 d.update({'Contact Info': {'Mobile Number':d['Mobile Number'],'Phone 
                 Number':d['Phone Number'] }})

2

d['Contact Info']={}
d['Contact Info']['Mobile Number']=d['Mobile Number']

你能说出更好的方式或不同的方法来创建一个字典键,可以将其作为值分配给dict项吗???

原始代码:

import csv
import copy
from collections import namedtuple

d={}
ls=[]

def nest():
    with open ("details.csv", 'r') as f:
        reader=csv.DictReader(f)

        for row in reader:

            d.update(row)
            PersonalDetails = namedtuple('PersonalDetails','blood_group age sex')
            ContactInfo = namedtuple('ContactInfo','phone_number mobile_number')

            d1=copy.deepcopy(d)
            ls.append(d1)
        print ls

nest()

1 个答案:

答案 0 :(得分:0)

这就是我如何更新我的词典:

我会创建一个带有3个参数的函数(子句的键,所述子句的子键以及要更改的值。)我指定要更新然后更新该值。

d = {
    'Name': 'A',
    'Personal Details': {'Blood Group': 'O +ve', 'Age': '1', 'Sex': 'M'},
    'Contact Info': {'Phone  Number': '01234567', 'Mobile Number': '9876543210'},
    'Date of Birth': '01-01-95'
    }


def updateInfo(toBeUpdated, subkey, ValueToUpdate):
    if toBeUpdated in d:
        tempdict = d[toBeUpdated]
        tempdict[subkey] = ValueToUpdate
        d[toBeUpdated] = tempdict
        print (d)
    else:
        print ("No %s to update" % (toBeUpdated))

updateInfo('Contact Info','Mobile Number','999 999 9999')

我从中得到的结果:

{'Name': 'A', 'Personal Details': {'Blood Group': 'O +ve', 'Age': '1', 'Sex': 'M'}, 'Contact Info': {'Phone  Number': '01234567', 'Mobile Number': '999 999 9999'}, 'Date of Birth': '01-01-95'}