Dictionary 在已知值之前,是否可以将namedtuple的新实例推送到字典中?

Dictionary 在已知值之前,是否可以将namedtuple的新实例推送到字典中?,dictionary,python-3.6,namedtuple,Dictionary,Python 3.6,Namedtuple,对我来说,9号线好像出了问题。在这里,我想把TagsTable的一个新版本放到字典里。我知道,一旦记录了namedtuple字段,它就无法更改。但是,结果让我感到困惑,因为看起来值确实发生了变化-当此代码退出mp3_标记的所有条目[三个字典键中的任何一个]时。日期设置为“1999_03_21”的最后一个日期 因此,有两个问题: 有没有办法把一个新的TagsTable放到字典里 为什么代码没有失败,不允许将第二个(甚至第三个)日期写入TagsTable.date字段(因为它似乎是对同一名称的元组的

对我来说,9号线好像出了问题。在这里,我想把TagsTable的一个新版本放到字典里。我知道,一旦记录了namedtuple字段,它就无法更改。但是,结果让我感到困惑,因为看起来值确实发生了变化-当此代码退出mp3_标记的所有条目[三个字典键中的任何一个]时。日期设置为“1999_03_21”的最后一个日期

因此,有两个问题:

  • 有没有办法把一个新的TagsTable放到字典里

  • 为什么代码没有失败,不允许将第二个(甚至第三个)日期写入TagsTable.date字段(因为它似乎是对同一名称的元组的引用)?我以为你不能写第二个值

  • 从集合导入namedtuple 2 TagsTable=namedtuple('TagsTable',['title','date','subtitle','artist','summary','length','duration','pub_date'])) 3个mp3文件=['42-001.mp3','42-002.mp3','42-003.mp3'] 4个日期=['1999年01月07日'、'1999年02月14日'、'1999年03月21日'] 5. 6个mp3_标签={} 7. 8对于MP3文件中的MP3文件: 9个mp3_标签[mp3file]=标签稳定 10 11对于MP3文件,zip中的日期字符串(MP3文件,日期): 12个mp3_标记[mp3file]。日期=日期字符串 13 14对于MP3文件中的MP3文件: 15打印(mp3_标签[mp3file].日期)
    看起来这就是我一直在寻找的解决方案:

    从集合导入namedtuple
    mp3files=['42-001.mp3','42-002.mp3','42-003.mp3']
    日期=['1999年01月07日'、'1999年02月14日'、'1999年03月21日']
    mp3_标签={}
    对于MP3文件中的MP3文件:
    mp3_标签[mp3file]=命名双标签('TagsTable'、['title'、'date'、'subtitle'、'Artister'、'summary'、'length'、'duration'、'pub_date']))
    对于MP3文件,zip中的日期字符串(MP3文件,日期):
    mp3_标记[mp3file]。日期=日期_字符串
    对于MP3文件中的MP3文件:
    打印(mp3_标签[mp3file].日期)
    
    from collections import namedtuple 2 TagsTable = namedtuple('TagsTable',['title','date','subtitle','artist','summary','length','duration','pub_date']) 3 mp3files = ['42-001.mp3','42-002.mp3','42-003.mp3'] 4 dates = ['1999_01_07', '1999_02_14', '1999_03_21'] 5 6 mp3_tags = {} 7 8 for mp3file in mp3files: 9 mp3_tags[mp3file] = TagsTable 10 11 for mp3file,date_string in zip(mp3files,dates): 12 mp3_tags[mp3file].date = date_string 13 14 for mp3file in mp3files: 15 print( mp3_tags[mp3file].date )