簡體   English   中英

Pythonic方式設置排序順序?

[英]Pythonic way to set sort order?

我有一個對象的集合,我需要分配一個隨機的順序。 我寫了一個非常愚蠢的java風格循環來做到這一點,但是什么是更好的pythonic方式來實現相同的?

from random import shuffle

class pair(object):
    def __init__(self, name):
        self.name = name
        self.order = 0
    def __repr__(self):
        return self.name + " order: " + str(self.order)

test =[pair('a'),pair('b'),pair('c'),pair('d')]
print(test)
#shuffle the list
shuffle(test)
i = 1
#this is what i want to replace <------
for t in test:
    t.order=i
    i+=1

print(test)

樣本輸出:

>>>[a order: 0, b order: 0, c order: 0, d order: 0]
>>>[c order: 1, a order: 2, d order: 3, b order: 4]

這並不比你的簡單得多,但它可能有點整潔:

for i, t in enumerate(test):
    t.order = i
[ x.order = o for o, x in enumerate(test) ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM