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