【发布时间】:2021-12-28 12:34:00
【问题描述】:
我有一个 global_list:[1,7,23,72,7,83,60]
我需要从这个列表中创建 2 个随机列表(示例):
- list_1: [7, 7, 23, 83, 72]
- list_2: [1, 60]
我的实际工作代码是:
import random
import copy
def get_2_random_list(global_list, repartition):
list_1, list_2 = [], copy.copy(global_list)
list_1_len = round(len(list_2)*repartition)
print("nbr of element in list_1:",list_1_len)
for _ in range(list_1_len):
index = random.randint(1,len(list_2)-1)
list_1.append(list_2[index])
del list_2[index]
return list_1, list_2
global_list = [1,7,23,72,7,83,60]
list_1,list_2 = get_2_random_list(global_list,0.7)
print("list_1:", list_1)
print("list_2:", list_2)
print("global_list:", global_list)
我觉得它可以优化。 (也许我在random 库上搜索得不够多)在效率方面(我正在处理数百万个元素)和密度方面(我希望该函数有 1 或 2 行代码) .
【问题讨论】:
标签: python list optimization random