【问题标题】:using indexing to search for N number in list and return index使用索引在列表中搜索 N 个数字并返回索引
【发布时间】:2020-04-03 05:48:13
【问题描述】:

看来我和下面的问题有同样的问题。但我不理解建议的解决方案:

Python using a loop to search for N number and return index

在这种情况下,提供以下内容:

我们将向您传递 2 个输入:

数字列表

要查找的数字 N

您的工作是遍历列表并找到第二个输入中指定的数字。输出找到数字的列表元素索引。

如果列表中没有找到 N,则输出 -1。

这是我目前所拥有的:

(提供了 import 和 N)

import sys
N= int(sys.argv[2])

(this is also provided)
numbers= []
for i in sys.argv[1].split(","):
    if(i.isdigit()):
        numbers.append(int(i))

*代码适用于以下

if N in numbers:
    print(numbers.index(N))
else:
    print(-1)

但在这段代码中,不应该是这样吗?:

if N[1] in numbers:

    print(numbers.index(N[1]))

else:
    print(-1)

自动生成的输入和正确答案是: 输入:1,3,11,42,12 42 你的输出:3

所以在这一切之后,我所理解的问题是,寻找 N 是如何告诉代码寻找第二个输入的。

如果自动输入是 [11,42] ,不是 (n[1]) 吗?告诉它使用这个值?

如果有人可以帮助澄清我对这个简单索引问题的理解,将不胜感激。

【问题讨论】:

    标签: python


    【解决方案1】:

    这里发生的事情如下

    if N in numbers:                  # check if the number N in the list of numbers at all
        print(numbers.index(N))       # the index method searchs in the numbers list for the first entry matching the number N and returns its index.
    else:
        print(-1)
    

    由于N 被定义为 int(x),它不是列表,您可以使用 N[x] 进行索引。 [x] 部分告诉解释器搜索您不想在此处执行的可迭代的第 x 个条目。

    【讨论】:

    • 谢谢,但是在这个提示中,它特别要求第二个 N 值(N=[x,y](N 是 2 个随机数的列表)如何使用 N 来确认使用第二个值?(在这种情况下是 Y)?我认为这个公式只有在数字列表中不存在 N(或 X)的第一个值时才有效
    • 你写了 N = int(arg...)。结果永远不会是一个列表(参见int() method)。所以我猜你把事情搞混了。如果您可以向我们打印(argv),以便我们看到所有输入,我可以帮助您更清楚地了解发生了什么。如果 N 是一个列表,那么任何一个数字都必须包含列表,或者是的,您必须选择一个条目(例如 N[1])才能使其工作
    • 如果你指的是“找到第二个输入中指定的数字”,这只是指argv的第二个输入,它是程序的参数数组。在这种情况下看起来像 argv=[program_name, "1,2,33,42,12", 2] 其中最后一个条目是你的号码 N
    猜你喜欢
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多