我有不同的分類與我一個詳盡的清單:拆分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