как получить конкретный c вывод из разных элементов списка? - PullRequest
4 голосов
/ 17 февраля 2020

Я хочу получить заданный c вывод для элемента, который не принадлежит списку, я sh должен выполнить следующую функцию: я определил list(lst1), программа затем запрашивает ввод от пользователя, а затем преобразует данное целое число в список и сравнивает ввод с lst1. Если элементы не совпадают правильно (даже 1), то программа печатает, что указанный элемент c не принадлежит данному списку (пример показан ниже):

lst1=[1,2,3]

a=int(input())

b=a.split()

сейчас, например, для i введите 234

i wi sh, чтобы получить вывод:

'4' does not belong in lst1

Ответы [ 2 ]

5 голосов
/ 17 февраля 2020

Следующее должно делать трюк:

lst1=[1,2,3]
a=int(input())

user_input = [int(i) for i in str(a)]

for num in user_input: 
    if num not in lst1:
        raise ValueError(f"{num} does not belong to lst1")

В качестве альтернативы, вы можете использовать set разница:

lst1=[1,2,3]
a=int(input())

user_input = [int(i) for i in str(a)]

if len(set(user_input) - set(lst1)) > 0:
    raise ValueError("...")

РЕДАКТИРОВАТЬ

Если вы хотите обрабатывать множественные пользовательские вводы, то сработает следующее:

lst1=[1,2,3]
a = input().split(' ')

user_input = [int(i) for i in a]

for _input in user_input:
    for num in [int(i) for i in str(_input)]:
        if num not in lst1:
            print(f"{num} does not belong to lst1")

или

lst1=[1,2,3]
a = input().split(' ')

user_input = [int(i) for i in a]

for _input in user_input:
    num = [int(i) for i in str(_input)]

    diff = set(num) - set(lst1)
    if len(diff) > 0:
        print(f"The following numbers are invalid: {diff}")
3 голосов
/ 17 февраля 2020

Вы можете сделать что-то вроде этого:

>>> a=set([int(x) for x in raw_input()])
234
>>> [x for x in a if x not in lst1]
[4]
>>> 

Вы также можете сделать lst1 набором (set(lst1)) для более быстрого доступа и сделать что-то вроде a - lst1 (что приводит к set([4])).

РЕДАКТ. :

>>> lst1 = set(lst1)
>>> for i in a - lst1:
    print (str(i) + ' does not belong to lst1')


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