def shufflemode():
import random
combined = zip(question, answer)
random.shuffle(combined)
question[:], answer[:] = zip(*combined)
但後來我得到的錯誤: 類型錯誤:類型「拉鍊」的對象沒有LEN()LEN錯誤的python荏苒
我該怎麼辦我好迷茫
def shufflemode():
import random
combined = zip(question, answer)
random.shuffle(combined)
question[:], answer[:] = zip(*combined)
但後來我得到的錯誤: 類型錯誤:類型「拉鍊」的對象沒有LEN()LEN錯誤的python荏苒
我該怎麼辦我好迷茫
我不知道一樣的東西。根據: randomizing two lists and maintaining order in python 你應該能夠像OP嘗試一樣做,但我也得到同樣的錯誤。我認爲從鏈接的人使用python 2而不是3,這可能是問題嗎?
這在Python 2.7中適用於我,但現在我已經更改爲Python3,但是相同的代碼遇到錯誤。 Zip應該從python2更改爲3。 – armen
偶然發現,並且很驚訝地瞭解random.shuffle方法。所以,我想你的榜樣,它在Python 2.7.5爲我工作:
def shufflemode():
import random
combined = zip(question, answer)
random.shuffle(combined)
question[:], answer[:] = zip(*combined)
question = ["q1","q2","q3","q4","q5"]
answer = ["a1","a2","a3","a4","a5"]
if __name__ == "__main__":
shufflemode()
print question,answer
結果是兩個清單的問題和答案相同的隨機序列* 強大的文本 *:
>>>
['q3', 'q2', 'q5', 'q4', 'q1'] ['a3', 'a2', 'a5', 'a4', 'a1']
>>>
這是Python 2和Python 3之間的問題。在zip工作後使用shuffle的Python 2中,因爲zip返回一個列表。在Python 3: 「類型錯誤:類型 '拉鍊' 的對象沒有LEN()」,因爲拉鍊在Python返回迭代3.
解,使用列表(),以轉換成一個列表:
combined = list(zip(question, answer))
random.shuffle(combined)
隨shuffle()出現錯誤,因爲shuffle()使用len()。
你導入一個名爲 「ZIP」 型,其覆蓋的buildin壓縮功能? –
我導入的唯一東西是「隨機」 – user2636002
你如何運行上面的代碼?你可以發佈你的所有代碼嗎? –