不使用内置功能随机播放python列表
作者:互联网
我正在编写两个不同的随机播放功能.
第一个随机播放功能必须获取一个列表,然后返回一个新列表,其中元素随机排列为随机顺序.
到目前为止,这是我第一个随机播放功能-
def shuf(List):
import random
newList=[]
for i in List:
i=random.randrange(len(List))
newList+=i
return newList
第二个随机播放功能将列表作为参数,并在适当的位置随机播放列表.
我知道如何使用内置函数来执行此操作,但不允许使用它.
解决方法:
您可能会发现此改组实施符合您的需求.使用它们之前,请确保注意两个功能之间的区别.
>>> import random
>>> def shuffle(array):
copy = list(array)
shuffle_in_place(copy)
return copy
>>> def shuffle_in_place(array):
array_len = len(array)
assert array_len > 2, 'Array is too short to shuffle!'
for index in range(array_len):
swap = random.randrange(array_len - 1)
swap += swap >= index
array[index], array[swap] = array[swap], array[index]
>>> array = list(range(10))
>>> array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> shuffle(array)
[7, 2, 3, 5, 8, 6, 0, 1, 9, 4]
>>> array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> shuffle_in_place(array)
>>> array
[8, 3, 1, 6, 9, 7, 0, 4, 2, 5]
>>>
标签:python-3-3,python 来源: https://codeday.me/bug/20191009/1878416.html