как добавить список с двумя переменными в другой список, в котором уже есть этот список, но с другими значениями?питон - PullRequest
0 голосов
/ 30 ноября 2018

Я делаю курсовую работу по программированию и столкнулся с проблемой

gamecentre1 = [winnerscore, winner]


organise = []

organise.extend([gamecentre1])

from operator import attrgetter, itemgetter

sorted(organise, key= itemgetter(0))

print(organise)


f = open("gameresults.txt","w")

f.write("Here are the winners of the games: \n")

f.write(str(organise))

f.write("\n")

f.close()

Я пытаюсь добавить две переменные в список и добавить этот список в другой список.Затем я хочу организовать этот большой список на основе целочисленной переменной подсписка (целое число равно winnerscore).Но проблема в том, что я не смог организовать их должным образом, и я беспокоюсь о том, что, поскольку мне приходится добавлять один и тот же список с теми же переменными в больший список, не перезаписывая существующий список, большой список простоиметь одни и те же значения снова и снова.

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

Как мне это сделать?

1 Ответ

0 голосов
/ 30 ноября 2018

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

Похоже, что вы хотите, это вложенный список - большой список небольших списковтак, что каждый маленький список не зависит от других.Ключевая проблема в вашем коде, которая сейчас мешает вам выполнить это, - extend() - по сути, это список конкатенация , а это не то, что вам нужно.Например,

x = [1, 2]
x.extend([3, 4])  # x == [1, 2, 3, 4]

Вместо этого попробуйте использовать append(), который добавляет свой аргумент в качестве следующего значения в списке.Например:

x = []
x.append([3, 4])  # [[3, 4]]
x.append([1, 2])  # [[3, 4], [1, 2]]

Теперь в приведенном выше примере у нас есть список x длиной два элемента, и каждый из этих элементов сам является списком из двух элементов.Теперь мы можем подключить это к sort:

y = sorted(x, key=lambda i: i[0])
print(y)
# [[1, 2], [3, 4]]

(lambda i: i[0] - это действительно более элегантный способ того, что вы делаете с itemgettr(0) - это лямбда , небольшая встроенная функция, которая принимает один аргумент i и возвращает 0 -й элемент i. В этом случае i, который передается, является одним из меньших списков).

Теперь у вас есть отсортированный список небольших списков, и вы можете делать с ними все, что вам нужно.

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