class WaitingList:
def __init__(self):
self.items = []
def stillWaiting(self, destination):
newList = []
index = 0
for i in range(0, len(self.items)):
thisGroup = self.items[index]
if thisGroup[1] == thisGroup[1]:
duplicates = thisGroup[0] + thisGroup[0]
newList = duplicates
else:
newList = i
return newList
self.items хранит список кортежей, например
self.items = [(3,"Rome"),(2,"Naples"),(1,"Pisa"), (1,"Florence"), (25,"Rome")]
Я требую, чтобы моя программа выполняла итерацию по каждому кортежу в любом заданном списке, и если пункт назначения, т.е. Рим, является общим в любом из кортежей, добавьте числа, которые появляются рядом с пунктами назначения в кортежах, и сохраните результаты в новый список. Таким образом, ожидаемый результат для приведенного выше будет:
[28,"Rome"), (2,"Naples"),(1,"Pisa"), (1,"Florence")]
Спасибо
Вы уже пытались написать подпрограмму, которая будет делать то, что вам нужно? Как это выглядит?
if thisGroup[1] == thisGroup[1]
может быть False
?
Это позволит пользователю узнать количество людей в списке ожидания на рейс до введенного пункта назначения.
balderman, да, я думал, что с помощью оператора for он перейдет к следующему кортежу списка и сравнит два значения в индексе 1, которые будут пунктом назначения.
from collections import defaultdict
city_to_num = defaultdict(int)
for num, city in self.items:
city_to_num[city] += num
output = [(num, city) for city, num in city_to_num.items()]
Это не касается self.items, из которых исходят номер и пункт назначения.
Добавлял обобщающее решение. Просто повторите self.items
вместо items
, как я писал ранее.
Это добавило значения, но; [(30, 'Рим'), (2, 'Неаполь'), (1, 'Пиза'), (1, 'Флоренция')] ожидание вылета в Рим было возвращено 5 раз при проверке на тестовом файле, я нуждаться; 30 ожидающих вылета в Рим, на одной линии 2 ожидающих вылета в Неаполь, на следующей линии и т. д., но в тестовом файле применяется «ожидание вылета в»
Это выходит за рамки исходного вопроса.
Да, я знаю, я неправильно истолковал это, спасибо за вашу помощь в любом случае.
Похоже, вы занимаетесь чем-то вроде частоты. Так что не воспринимайте это как ответ, но почему бы не изменить работу self.items. Создание кортежа с именем и значением кажется немного наивным, почему бы не создать словарь и не использовать что-то вроде setdefault или get, чтобы у вас не было дубликатов в dict в первую очередь, и если вам нужно, вы можете даже преобразовать dict в список кортежей, используя items()
stillWating
получить аргумент с именемdestination
. Что он делает с этим?