Tạo một danh sách các namedtuples
Nó thường có thể rất tiện dụng để sử dụng namedtuple.Ví dụ, bạn có một từ điển của 'tên' như phím và chấm điểm như giá trị như:
d = {'John':5, 'Alex':10, 'Richard': 7}
Bạn có thể liệt kê các mặt hàng như các bộ, sắp xếp nếu bạn thích, và có được tên và số điểm, chúng ta hãy nói, cầu thủ có điểm số cao nhất (index = 0) rất Pythonically như thế này:
>>> player = best[0]
>>> player.name
'Alex'
>>> player.score
10
làm thế nào để làm điều này:
danh sách theo thứ tự ngẫu nhiên hoặc giữ gìn trật tự của collections.OrderedDict:
import collections
Player = collections.namedtuple('Player', 'name score')
players = list(Player(*item) for item in d.items())
theo thứ tự, được sắp xếp theo giá trị ('điểm'):
import collections
Player = collections.namedtuple('Player', 'score name')
được sắp xếp với điểm số thấp nhất đầu tiên:
worst = sorted(Player(v,k) for (k,v) in d.items())
được sắp xếp với số điểm cao nhất đầu tiên:
best = sorted([Player(v,k) for (k,v) in d.items()], reverse=True)
'[tuple (đảo ngược (x)) cho x trong d.items()]' – garej