假設我在一個長列表中有一堆元素,並且我想根據在random.randit(lo,hi)函數中得到的輸出切換它們。 例如,我的名單是在Python中切換兩個元素
L=[(1,hi), (1, bye), (1,nope), (1,yup), (2,hi), (2, bye), (2,nope), (2,yup), (3,hi), (3, bye), (3,nope), (3,yup), (4,hi), (4, bye), (4,nope), (4,yup), (5,hi), (5, bye), (6,nope), (7,yup)]
如果我輸入from random import randint
然後做randint(0,(len(L)-1))
我得到作爲輸出我想利用那個號碼索引的項目,並在列表中的最後一個元素交換它的數量,然後randint(lo, len(L)-2))
,並從我的輸出中得到的數字,以該數字索引的元素並將其與倒數第二個元素交換,依此類推,直到我開始。這就像我想完全隨機地重新排列列表,而不是使用shuffle函數。我知道我可以做randint(0,(len(L)-1)),如果我得到5作爲輸出做A = L [19](因爲我知道我列表中的最後一個元素被索引爲19)。 然後做L [19] = L [5],讓第5個元素取第19個元素的位置,然後做L [5] = A,這樣最後一個元素成爲第5個元素。但我不知道如何將它寫成循環。
洗牌隨機 – hjpotter92
你做了什麼的 – Hooting
可能重複[如何切換的Python列表兩個項目位置?(http://stackoverflow.com/questions/2493920/how-to-switch -position-of-two-items-in-a-python-list) –