我正在用django開發我的應用程序,並且在我的某個視圖中我有一個給定的數字(nbr)。我想知道是否可以生成一個長度爲'nbr'的列表,並填入'nbr'假元素。用假元素生成給定長度的列表。 Django
謝謝
我正在用django開發我的應用程序,並且在我的某個視圖中我有一個給定的數字(nbr)。我想知道是否可以生成一個長度爲'nbr'的列表,並填入'nbr'假元素。用假元素生成給定長度的列表。 Django
謝謝
你的意思是這樣的:
new_list = [None]*nbr
這個成語主要用於不可變對象。對於可變對象,通常
new_list = [ mutable_object_factory() for _ in range(nbr) ]
使用(除非你真的知道自己在做什麼:)
你的意思是這樣的嗎?
[fake_element for n in xrange(nbr)]
假設隨機元素存儲在一個名爲choices
列表,你可以使用random.choice
In [1]: choices = ['a', 'b', 'c']
In [2]: myList = [random.choice(choices) for x in xrange(10)]
In [3]: myList
Out[3]: ['b', 'b', 'c', 'b', 'c', 'a', 'a', 'a', 'b', 'a']
我剛剛意識到我認爲我誤解了這個問題的「假」元素作爲隨機元素。 – acjay
爲什麼總是使用兩種不同的語法呢? :) –
@tvdien - 他們做的事情略有不同。第一個更簡潔。最後,由於這兩個習語都很常見,所以兩者都很好(例如在閱讀其他人的代碼時) – mgilson
@tvdien - 這兩者之間存在重要的分歧,因爲如果你做new_list = obj * nbr,你正在創建nbr數字引用OBJ。這幾乎肯定不是想要改變new_list [0] .something會改變所有引用的obj副本中的something屬性。 – rorycl