|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import random
def fy_shuffle(x, n=1):
for i in range(n):
target = list(x)
result = []
while target:
r = random.randint(0,len(target)-1)
result.append(target.pop(r))
print(f"第{i+1}次打乱的结果:{''.join(result)}")
return "".join(result)
x = input('请输入需要打乱的序列:')
n = int(input('请输入需要打乱的次数:'))
print(f'最终结果是:{fy_shuffle(x,n)}')
代码的目的是每次从序列里取出一个随机的元素放到新的序列里,直到原序列里所有元素都被取出来以后就完成打乱序列的任务了
我的理解是random.randint(a,b)是左闭右开区间,所以random.randint的参数中的len(target)不用-1也可以,因为不会取到len(target)
在这段代码中, random.randint(a, b) 函数用于生成一个介于 a 和 b 之间的随机整数。但是,需要注意的是, b 参数是一个上限值,是不包含在生成的随机整数范围内的。
在这个代码中, r = random.randint(0, len(target)-1) 的目的是生成一个介于0和 len(target)-1 之间的随机整数。为什么要减去1呢?
这是因为在Python中,列表的索引是从0开始的。如果我们有一个长度为 n 的列表,那么它的索引范围是从0到 n-1 。所以, len(target)-1 实际上是列表 target 的最后一个元素的索引。
因此,通过 random.randint(0, len(target)-1) ,我们可以生成一个介于0和 len(target)-1 之间的随机整数,用于从列表中随机选择一个元素。
|
|