Как я могу вернуть указанные c элементы списка из a для l oop в той же строке? (python 3) - PullRequest
0 голосов
/ 06 марта 2020
ALL_IRELAND_WINNERS = [(1887, "Munster", "Tipperary"), (1889, "Leinster", "Dublin"), (1890, "Munster", "Cork"),
    (1891, "Munster", "Kerry"), (1892, "Munster", "Cork"), (1893, "Munster", "Cork"),
    (1894, "Munster", "Cork"), (1895, "Munster", "Tipperary"), (1896, "Munster", "Tipperary"),
    (1897, "Munster", "Limerick"), (1898, "Munster", "Tipperary"), (1899, "Munster", "Tipperary"),
    (1900, "Munster", "Tipperary"), (1901, "Britain", "London"), (1902, "Munster", "Cork"),
    (1903, "Munster", "Cork"), (1904, "Leinster", "Kilkenny"), (1905, "Leinster", "Kilkenny0] 

query_team = input("Enter a county: ")
def winning_county(query_team):
    for (years, province, county) in ALL_IRELAND_WINNERS:
        if (query_team == county):
            return(years)

Ввод "County", введенный пользователем, будет искать в этом списке и будет возвращать только 1 год, мне нужно, чтобы он возвращал все выигранные годы и помещал их в список вместе ... Любая помощь?

Ответы [ 3 ]

0 голосов
/ 06 марта 2020

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

def get_winning_year():
    query_team = input("Enter a county: ")
    years = []
    for i in ALL_IRELAND_WINNERS:
        if str(query_team) in i:
            new_list = [j for j in i]
            years.append(new_list[0])
    return years

Это даст мне

get_winning_year ()

Введите округ: Tipperary

Вывод: [1887, 1895, 1896, 1898, 1899, 1900]

0 голосов
/ 06 марта 2020
query_team = input("Enter a county: ")
def winning_county(query_team):
    return [line[0] for line in ALL_IRELAND_WINNERS if query_team in line]
0 голосов
/ 06 марта 2020

Ты рядом. Вместо того, чтобы возвращаться к первому правильному ответу, попробуйте сохранить список лет, которые сработали, и вместо этого верните полный список. Так что-то вроде:

query_team = input("Enter a county: ")
def winning_county(query_team):
    winning_years = []
    for (year, province, county) in ALL_IRELAND_WINNERS:
        if (query_team == county):
            winning_years.append(year)
    return winning_years
...