【发布时间】:2019-09-30 20:37:47
【问题描述】:
我正在尝试遍历字典列表,并仅在其yearID 键中保留具有年份值的字典。本质上,列表 (statistics) 是棒球统计数据,每一行(字典)是球员一年中的统计数据。
这段代码似乎工作得很好(对于非常小的字典列表),但是一旦列表的大小超过 40 或 50,Thonny 就会崩溃:
def filter_by_year(statistics, year, yearid):
nlist = []
for dicts in statistics:
if str(dicts[yearid]) == str(year):
nlist.append(dicts)
return nlist
【问题讨论】:
-
如果您需要,此代码可以工作,并且足够高效,可用于 100.000 - 1.000.000 个字典。
-
为什么要比较年份的字符串表示而不是直接比较年份?
dicts[yearid]==year。转换为字符串肯定需要很多时间。
标签: python list dictionary iteration