【发布时间】:2018-12-15 11:28:31
【问题描述】:
tup_list = [(111, 'red'), (222, 'blue'), (333, 'green'), (444, 'red')]
x = input(str("colour? "))
for c in tup_list:
if x in c:
print(c[0])
else:
print("error ")
代码示例^
如果用户输入“红色”,则输出为:
111
error
error
444
如果用户输入“蓝色”,则输出为:
error
222
error
error
等等。如果用户输入不在 tup_list 中的“randomchars”(任何随机字符),则输出为:
error
error
error
error
我知道我的代码正在为 tup_list 中的每个 c 打印“错误”。如果用户输入不在 tup_list 中,我希望我的代码一次写入“错误”。我也不明白为什么 tup_list 中的每个否定匹配都会打印错误(例如,输入红色会正确地得到 111 和 444,但它也会为蓝色和黄色元组提供两个错误)。
【问题讨论】:
-
这是预期的:如果匹配,则打印,否则打印错误...您是否考虑过使用字典,其中颜色名称作为键,数字作为值(作为列表,因此可以关联超过 1 个到 1 种颜色)?它会避免循环。
标签: python list for-loop tuples nested-lists