当前位置: 首页 > 面试题库 >

针对python中的列表测试用户输入

尉迟冯浩
2023-03-14
问题内容

我需要测试用户输入是否与列表的元素相同,现在我正在这样做:

cars = ("red", "yellow", "blue")
guess = str(input())

if guess == cars[1] or guess == cars[2]:
        print("success!")

但是我正在使用更大的列表,并且所有这些检查都使if语句增长很多,有没有办法引用多个索引,例如:

if guess == cars[1] or cars[2]

要么

if guess == cars[1,2,3]

阅读列表文档后,我发现不可能引用多个索引,就像我在上面尝试过的那样,当然会发送语法错误。


问题答案:

最简单的方法是:

if guess in cars:
    ...

但是如果您的清单很大,那将会很慢。然后,您应该将汽车列表存储在一组中:

cars_set = set(cars)
....
if guess in cars_set:
    ...

检查某项是否存在集合比检查某项是否存在于列表中要快得多(但这仅在您有很多项并且要进行多次检查时才成为问题)。

(编辑:我假设cars[0]问题中代码的遗漏是偶然的。如果不是,请使用cars[1:]代替cars。)



 类似资料:
  • 问题内容: 我试图用来获取数字列表,但是带有代码 输入给出的结果为,因此我想它会将输入解释为字符串。有什么直接方法可以列出清单吗?也许我可以用来提取整数,但如果可能的话,我宁愿使用更的解决方案。 问题答案: 在Python 3.x中,使用它。 例

  • 我必须测试一个类中的一个方法,它接受一个使用扫描器类的输入。 我想使用JUnit测试它,但不确定如何进行。 我尝试使用下面的代码,但它不起作用。 我也想用Mockito(使用mock...when...thenReturn),但不确定如何做。

  • 问题内容: 我正在尝试为需要用户输入的方法创建一些JUnit测试。被测方法看起来类似于以下方法: 有没有一种方法可以自动将程序传递给int而不是我或其他人在JUnit测试方法中手动执行此操作?像模拟用户输入一样? 提前致谢。 问题答案: 你可以通过调用来用自己的流替换可以是一个字节数组: 通过将IN和OUT作为参数传递,不同的方法可以使此方法更具可测试性:

  • 问题内容: 所有: 现在,我想获取一个标记了对象的列表。我该怎么办? 顺便说一句,如何在这里正式将变量称为“ a”?我知道到目前为止,它是对象的“对象标签”,但是我不知道它的术语是什么。 谢谢! 我为什么需要这个: 在其他语言(例如C)中,如果我重新分配a = 2,则a,b,c应该为2,但是在python中,没有诸如引用之类的东西,因此更改abc的所有值的唯一方法是a = b据我所知= = c =

  • 我有一个返回对象列表的MockMVC测试。我正在尝试检查此特定属性是否设置正确。 然而,除了显式添加之外,我无法用任何方式使它匹配。KeyPair是一个简单的Pair类,有一个键值,非常类似于一个映射的条目。 我尝试了几种选择 is( keyList ) is( keyList.toString() ) 是(Gson.toJson(keylist) is(mapper . writevalueas