1. 程式人生 > >關於Python2與Python3中的range

關於Python2與Python3中的range

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]),用於將一個列表中的元素打亂