我现在可以通过使用大量for循环来完成我想要的任务,但是我觉得应该有一个更简单的方法。你知道吗
我希望我的程序返回包含在字符串中找到的单词的列表的名称。我目前正在做:
my_car = ["blue","ford"]
dads_car = ["green","audi"]
car = input('Tell me either the make or colour of your car: ').lower()
whos_car = ""
for word in my_car:
if word in car:
whos_car = "my_car"
else:
whos_car = "unknown"
for word in dads_car:
if word in car:
whos_car = "dads_car"
else:
whos_car = "unknown"
print(whos_car)
但我要做的是编写一个for循环,遍历每个列表,无论哪个列表包含单词,都返回列表名。 这样做行不通,但希望能让事情更清楚:
for word in my_car,dads_car:
if word in car:
whos_car = the list name it found it in...
else:
whos_car = "Unknown"
希望这有道理。你知道吗
非常感谢!你知道吗
澄清后更新
使用字典和函数:
现在,如果您设置:
它打印:
但是:
印刷品:
旧的尝试
看起来是字典的好用法:
现在,如果您设置:
它打印:
但是:
印刷品:
您可以向
cars
添加任意数量的项,而无需更改代码。所以没有大量的for
循环。你知道吗你一找到匹配的就跳出了循环。 只有在执行
break
时,else:
下的代码才会被访问。 从Python3.6开始。词典按其所用的顺序排列。 因此,将首先搜索my_car
。你知道吗具有不同逻辑的替代解决方案:
现在,如果您设置:
它打印:
或更短的函数:
您可以使用locals():
印刷品:
一个简单的方法是,当在列表中找不到
whos_car
时,不要更改它的值,只有在第一个列表中找不到单词时,才搜索第二个列表。您的代码可以简单地变成:相关问题 更多 >
编程相关推荐