我有一本空字典。每个键的值是一个列表。当我处理我的数据时,我试图将一个列表条目添加到字典键的值中,包括可能在一行中创建键条目,我无法弄清楚为什么它和&# #39;不工作。
仅用于示例的单组数据。
这很有效。它添加了一个新密钥,并将值列表中的第一个条目添加到该密钥。
dates = dict()
mmdd = '3/24'
year = 2018
# -----------------------
# these three lines look they should be able to be combined
tmp = dates.get(mmdd,[])
tmp.append(year)
dates[mmdd] = tmp
# -----------------------
print(dates) # {'3/24': [2018]}
这不是。
dates = dict()
mmdd = '3/24'
year = 2018
dates[mmdd] = dates.get(mmdd,[]).append(year)
print(dates) # {'3/24': None}
为什么它不起作用? (对我来说)似乎做同样的事情。 .append之前的所有内容都返回一个列表,无论是数据还是空,并且追加应该在列表中添加一个条目。它可以零碎地完成,但不能一次完成。上述单行有什么问题和/或缺失?
(据我所知,无意味着它实际上是前两行不起作用,即。
tmp = dates.get(mmdd,[]).append(year)
返回None而不是[2018]。但这并不能帮助我解决这个问题。)
(我已经用几种方式玩过单行,只是为了看看我是否可以使它工作,例如我尝试在.append之前在所有内容周围放置一组额外的parens,同样用括号等。我也在四处寻找,但是找不到任何东西。)
我没有寻找解决问题的其他方法(我可以使用defaultdict等)。我特意在寻找上述单线无效的原因。我的python理解存在差距,我想填补它。毫无疑问,对于最随意的观察者来说,它是直接的。不过,我无法弄清楚。
谢谢!