对我来说,第9行似乎出了问题。在这里,我希望将TagsTable的新副本推到字典中。我知道,一旦记录了一个名称元组字段,就不能更改它。然而,结果使我感到困惑,因为它看起来确实改变了-当这段代码退出mp3的所有条目时_标签三个字典键中的任何一个.日期设置为“1999”的最后一个日期_03_21“
因此,有两个问题:
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 )
发布于 2018-06-21 16:30:26
看来这就是你要找的解决办法:
from collections import namedtuple
mp3files = ['42-001.mp3','42-002.mp3','42-003.mp3']
dates = ['1999_01_07', '1999_02_14', '1999_03_21']
mp3_tags = {}
for mp3file in mp3files:
mp3_tags[mp3file] = namedtuple('TagsTable',['title','date','subtitle','artist','summary','length','duration','pub_date'])
for mp3file,date_string in zip(mp3files,dates):
mp3_tags[mp3file].date = date_string
for mp3file in mp3files:
print( mp3_tags[mp3file].date )
https://stackoverflow.com/questions/-100008693
复制相似问题