Попытка определить функцию, которая создает списки из файлов и использует random.choices для выбора элемента из взвешенных списков - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь определить функцию, которая будет создавать списки из нескольких текстовых файлов и печатать случайный элемент из одного из взвешенных списков. Мне удалось заставить эту функцию работать с random.choice для одного списка.

введите здесь код

def test_rollitems():
    my_commons = open('common.txt')
    all_common_lines = my_commons.readlines()
    common = []
    for i in all_common_lines:
        common.append(i)
    y = random.choice(common)
    print(y)

Когда я пытался добавить второй список к функции, он не работал. t работает, и моя программа просто закрывается при вызове функции.

1 Ответ

0 голосов
/ 06 августа 2020

Забудь. Я сам в этом разобрался! Были проблемы с Geany, поэтому я установил Pycharm и смог решить эту проблему. Правильный код:

enter code here
def Improved_rollitem():
    #create the lists from the files#
    my_commons = open('common.txt')
    all_common_lines= my_commons.readlines()
    common = []
    for i in all_common_lines:
        common.append(i)
    my_uncommons = open('uncommon.txt')
    all_uncommon_lines =my_uncommons.readlines()
    uncommon =[]
    for i in all_uncommon_lines:
       uncommon.append(i)

    y = random.choices([common,uncommon], [.8,.20])
    if y == [common]:
        for i in [common]:
            print(random.choice(i))
    if y == [uncommon]:
        for i in [uncommon]:
            print(random.choice(i))

Если есть лучший способ сделать что-то вроде этого, было бы неплохо узнать об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...