如何从列表中选择多个元素?

2024-04-24 00:20:01 发布

您现在位置:Python中文网/ 问答频道 /正文

有了这段代码,我可以从comments.txt中选择一条注释并对其进行注释,而无需重复。如何从comments.txt中同时选择多个注释,而不让注释重复

def random_comment():
    num = randint(1, COMMAND_AMOUNT)
    while num in USED:
        num = randint(1, COMMAND_AMOUNT)
    USED.append(num)
    return COMMENTS[num]    

USED = []
file = open("comments.txt", "r")
COMMENTS = {num: comment.strip() for num, comment in enumerate(file.readlines(), start=1)}
file.close()

COMMAND_AMOUNT = len(COMMENTS)

Tags: 代码intxtdefcommentrandomamountcomments
2条回答

您可以使用^{}

SAMPLE_SIZE = 4 # for example (your question does not indicate how many element should be selected)

def random_comments():
    return random.sample(COMMENTS, SAMPLE_SIZE) 

如果要确保没有重复,请执行以下操作:

import random

with open("comments", "r") as f:
    COMMENTS = [comment.strip() for comment in f]
random.shuffle(COMMENTS)

def random_comment():
    return COMMENTS.pop() if COMMENTS else None

# print all the comments until no more:
for comment in iter(random_comment, None):
    print(comment)

相关问题 更多 >