Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在嵌套的dict中创建一个键,而不使用update函数_Python_Dictionary_Key - Fatal编程技术网

Python 在嵌套的dict中创建一个键,而不使用update函数

Python 在嵌套的dict中创建一个键,而不使用update函数,python,dictionary,key,Python,Dictionary,Key,输入: 一, 二, 您能说有什么更好的方法或不同的方法来创建字典键,它可以作为值分配给dict项吗 原始代码: d['Contact Info']={} d['Contact Info']['Mobile Number']=d['Mobile Number'] 以下是我将如何更新我的口述: 我将创建一个函数,该函数将接受3个参数(子ct的键、所述子ct的子键和您要更改的值)。我指定要更新,然后更新该值 import csv import copy from collections import

输入:

一,

二,

您能说有什么更好的方法或不同的方法来创建字典键,它可以作为值分配给dict项吗

原始代码:

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

以下是我将如何更新我的口述:

我将创建一个函数,该函数将接受3个参数(子ct的键、所述子ct的子键和您要更改的值)。我指定要更新,然后更新该值

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()
我从中得到的结果是:

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')

setdefault()
。我能赢什么?如果你能用我的例子来解释,我可以接受你的答案,因为我是新手,我会的,但我不太清楚你在这里做什么。您是否试图以某种方式修改词典?或者将现有的词典嵌套在一个更大的词典中?像你的anushka的babushka吗?我读过一个csv文件,里面有姓名、年龄、黑帮号码、电话号码、出生日期、性别等详细信息。我正在尝试创建一个嵌套的联系信息目录,其中的mob no,phone town密钥及其值会更新到DictReader中,那么
csv
模块及其
DictReader
如何?如果csv文件中有100个值会怎么样???@anonymous乘以数百个值你是指数百行记录了客户或某个人的所有详细信息吗?100个姓名、年龄、,csv中个人的其他详细信息。我希望手机号码和电话号码的密钥、值对在另一个名为“联系人信息”的密钥中更新。但是我正在寻找除上面提到的两种更新方法之外的其他更新方法
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()
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'}