我有不同的分类与我一个详尽的清单:拆分Python列表并将其存储在单独的列表
myList = [
{'name': 'Sasha', 'category': 'Dog'},
{'name': 'Meow', 'category': 'Cat'},
{'name': 'Bark', 'category': 'Dog'}
]
我希望他们能够打破这bigList内创建更小的列表。这将是与此类似:
bigList = [
[
{'category': 'Dog', 'name': 'Sasha'},
{'category': 'Dog', 'name': 'Bark'}
],
[
{'category': 'Cat', 'name': 'Meow'}
]
]
这里是迭代循环蟒蛇逻辑:
bigList = []
prev = ''
for s in myList:
newList = []
if s['category'] != prev:
for m in myList:
if m['category'] == s['category']:
newList.append(m)
bigList.append(newList)
prev = s['category']
这样做的伎俩对我,但我想知道我怎么能优化上述for循环中的更多更短和更高效的代码。
可能会更好地适应[代码审查网站(http://codereview.stackexchange.com/)。 – alecxe
这样做会很快。 – xxCodexx
查看'itertools',特别是['groupby'](https://docs.python.org/2/library/itertools.html#itertools.groupby) – roganjosh