gpt4 book ai didi

python |如何将元素随机添加到列表中

转载 作者:太空狗 更新时间:2023-10-29 22:01:46 25 4
gpt4 key购买 nike

有没有办法将元素随机添加到列表中,内置函数

例如:

def random_append():
lst = ['a']
lst.append('b')
lst.append('c')
lst.append('d')
lst.append('e')
return print lst

这将输出 ['a', 'b', 'c', 'd', 'e']

但我希望它随机添加元素并输出如下内容:['b', 'd', 'b', 'e', 'c']

是的,有一个函数 random.shuffle() 但它会立即随机播放一个我不需要的列表,我只想执行随机插入。

最佳答案

如果您需要在随机位置执行单次插入,那么已经给出的简单示例就可以了:

from random import randrange

def random_insert(lst, item):
lst.insert(randrange(len(lst)+1), item)

但是,如果您需要将 k 项插入到长度为 n 的列表中,那么使用之前给出的函数是 O(n*k + k**2) 复杂度。但是,如果您提前计算目标位置并一次性重写输入列表,则可以在线性时间 O(n+k) 内插入多个项目:

from random import sample
def random_insert_seq(lst, seq):
insert_locations = sample(xrange(len(lst) + len(seq)), len(seq))
inserts = dict(zip(insert_locations, seq))
input = iter(lst)
lst[:] = [inserts[pos] if pos in inserts else next(input)
for pos in xrange(len(lst) + len(seq))]

关于 python |如何将元素随机添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2475518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com