關於Python2與Python3中的range
阿新 • • 發佈:2018-11-23
Python2中用range函式編寫一個有序列表,用random.shuffle()函式,打亂原有順序的列表
import random
a=range(10)random.shuffle(a)
print a
此時輸出結果為: [7,8,9,4,6,2,0,1,3,5]
Python3中用range函式返回一個可迭代物件(型別是物件),而不是列表型別,因此如果用range函式的話,需要用到list()函式. list()函式是物件迭代器,可以吧range()返回的可迭代物件轉為一個列表,返回的變數型別為列表.
import random
a = list(range(10))
random.shuffle(a)
print(a)
此時輸出結果為: [0,9,7,3,5,1,6,8,2,4]
注:錯誤用法
import random
a = range(10)
random.shuffle(a)
print(a)
此時輸出結果為: None
總結:Python2中的range函式返回的是一個列表,Python3中的range函式返回的是一個可迭代物件,這點是主要差別,因此要用random.shuffle()函式,需要呼叫list(),將物件裝化為列表形式.
random.shuffle的函式原型為:random.shuffle(x[, random]),用於將一個列表中的元素打亂