我正在编写一些涉及这样的 Python 代码
values = {}
for element in iterable:
values.setdefault(element.name, []).append(element)
因为我之前可以对输入进行排序,所以我也这样实现了
values = {}
cur_name = None
cur_list = None
for element in iterable:
if element.name != cur_name:
values[cur_name] = cur_list
cur_name = element.name
cur_list = []
cur_list.append(element)
if cur_list:
values[cur_name] = cur_list
del values[None]
这里输入已经按 排序element.name
。
第二种方法比第一种方法快得多,而且它使用的内存也更少。
这是什么原因?
还是我在第二种方法中犯了某种错误?