我如何洗牌对象列表?我尝试了random.shuffle:
import random
b = [object(), object()]
print(random.shuffle(b))
但它输出:
None
我如何洗牌对象列表?我尝试了random.shuffle:
import random
b = [object(), object()]
print(random.shuffle(b))
但它输出:
None
当前回答
确保您没有将源文件命名为random.py,并且在您的工作目录中没有一个名为random.pyc的文件。这两种情况都可能导致程序尝试导入本地random.py文件,而不是python的random模块。
其他回答
确保您没有将源文件命名为random.py,并且在您的工作目录中没有一个名为random.pyc的文件。这两种情况都可能导致程序尝试导入本地random.py文件,而不是python的random模块。
def shuffle(_list):
if not _list == []:
import random
list2 = []
while _list != []:
card = random.choice(_list)
_list.remove(card)
list2.append(card)
while list2 != []:
card1 = list2[0]
list2.remove(card1)
_list.append(card1)
return _list
你可以使用shuffle或者sample。它们都来自于随机模块。
import random
def shuffle(arr1):
n=len(arr1)
b=random.sample(arr1,n)
return b
OR
import random
def shuffle(arr1):
random.shuffle(arr1)
return arr1
你可以这样做:
>>> A = ['r','a','n','d','o','m']
>>> B = [1,2,3,4,5,6]
>>> import random
>>> random.sample(A+B, len(A+B))
[3, 'r', 4, 'n', 6, 5, 'm', 2, 1, 'a', 'o', 'd']
如果您想返回到两个列表,那么您可以将这个长列表拆分为两个。
可以定义一个名为shuffled的函数(与sort vs sorted意思相同)
def shuffled(x):
import random
y = x[:]
random.shuffle(y)
return y
x = shuffled([1, 2, 3, 4])
print x