首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否有可能在知道值之前获得一个新的实例namedtuple被推入到字典中?

是否有可能在知道值之前获得一个新的实例namedtuple被推入到字典中?
EN

Stack Overflow用户
提问于 2018-06-21 06:45:04
回答 1查看 0关注 0票数 0

对我来说,第9行似乎出了问题。在这里,我希望将TagsTable的新副本推到字典中。我知道,一旦记录了一个名称元组字段,就不能更改它。然而,结果使我感到困惑,因为它看起来确实改变了-当这段代码退出mp3的所有条目时_标签三个字典键中的任何一个.日期设置为“1999”的最后一个日期_03_21“

因此,有两个问题:

  1. 有没有办法把新的TagsTable推入字典?
  2. 为什么代码不失败,不允许将第二个(甚至第三个)日期写入TagsTable.date字段(因为它似乎是对同一个名称的引用)?我以为你不会写第二个值?
代码语言:txt
复制
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 )
EN

回答 1

Stack Overflow用户

发布于 2018-06-21 16:30:26

看来这就是你要找的解决办法:

代码语言:txt
复制
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 )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档