Найти первую/вторую валюту и число в сообщении пользователя, заданном списком

275 просмотра
0
0 Комментариев

messageFromUser = ['btc', 'в', 'usd'] #сообщение от пользователя
vals = ['btc', 'usd', 'rub', 'uah'] #Список с валютами

Нужно проверить есть ли в сообщении от пользователя 2 элемента списка с валютами и записать их в переменные:

  • val1 — Первая валюта, которую напишет пользователь.
  • num — Изначально равно 1. Если в сообщении от пользователя после первой валюты идёт какое-то число, то оно приравнивается переменной num.
  • val2 — Вторая валюта, которую напишет пользователь.

Добавить комментарий

1 Ответы

Python Опубликовано 16.12.2018
0

Проверить есть ли в списке элементы другого списка можно простым пересечением —
пробежаться по каждому списку вручную, но можно и пересечь их в виде сетов, что будет проще:

ans = list(set(messageFromUser)&set(vals))

После этого содержимое ans будет выглядеть так:

['btc', 'usd']

И легко можно достать из этого списка первый и второй элементы, а также проверить, содержит ли список введенных пользователем значений после первого элемента число, которое и будет являться num:

val1 = ans[0]
val2 = ans[1]
if (messageFromUser.index(val1)>messageFromUser.index(val2)):
    # Возможно элементы в листе поменяют свое положение в сете
    # Так что нужна данная проверка,
    # Которая поставит каждую переменную на свое место
    tmp = val2
    val2 = val1
    val1 = tmp
try:
    num = int(messageFromUser[messageFromUser.index(val1) + 1])
except ValueError:
    # Какое-либо действие, если числа после val1 не содержится

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up