Aar*_*hay 4 python list python-3.x
我想为不属于列表的元素获取特定输出,我希望执行以下功能:我定义了一个list(lst1),然后程序要求用户输入,然后将给定的整数转换为一个列出并将输入与lst1. 如果元素不正确匹配(即使是 1),则程序会打印出特定元素不属于给定列表(示例如下所示):
lst1=[1,2,3]
a=int(input())
b=a.split()
Run Code Online (Sandbox Code Playgroud)
现在例如我输入 234
我希望得到一个输出:
'4' does not belong in lst1
Run Code Online (Sandbox Code Playgroud)
以下应该可以解决问题:
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")
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用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("...")
Run Code Online (Sandbox Code Playgroud)
编辑
如果你想处理多个用户输入,下面的方法可以解决问题:
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")
Run Code Online (Sandbox Code Playgroud)
或者
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}")
Run Code Online (Sandbox Code Playgroud)