load_list_data函数中随机取target_num数量字符串的问题

来源:6-5 dict和set的实现原理

weixin_精慕门6437911

2024-07-04

    for x in range(target_nums):
        random_index = randint(0, total_nums)
        if all_data[random_index] not in target_data:
            target_data.append(all_data[random_index])
            if len(target_data) == target_nums:
                break

如果random_index出现重复的数字,那么获取的总数就不是指定的数目了

写回答

1回答

bobby

2024-07-19

是的,可以使用集合来去重,或者直接从 all_data 中删除已经选过的元素。

from random import randint

all_data = [...]  # 假设这是你的数据列表target_nums = 10  # 假设你想选择10个字符串target_data = []for _ in range(target_nums):
    random_index = randint(0, len(all_data) - 1)
    target_data.append(all_data.pop(random_index))# 此时 all_data 中会少了 target_nums 个元素,而 target_data 则有 target_nums 个不重复的元素


0
0

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2121 学习 · 551 问题

查看课程