列表中的哪一项 - Python

问题描述 投票:0回答:8

我正在检查变量是否在列表中:

if variable in list:
例如,我想检查该列表中的哪个变量类似于 list[0] 或 list[1]。

====================================================== ===============

我很久以前就做了这个,当时我什至不知道索引是什么。对于任何不知道的人,您只需使用

list.index(variable)
即可返回该列表中变量的索引。

python variables arraylist
8个回答
1
投票

您可以使用列表类属性index来完成此操作,如下所示:

   list.index(variable)

Index 为您提供一个整数,该整数与您要查找的值第一次出现的位置相匹配,如果未找到该值,则会抛出错误。

如果您已经在检查该值是否在列表中,那么在 if 语句中您可以通过以下方式获取索引:

if variable in list:
    variable_at = list.index(variable)

示例:

foo = ['this','is','not','This','it','is','that','This']
if 'This' in foo:
    print(foo.index('This'))

输出:

3

看看下面的答案,里面有更完整的信息。

查找列表中项目的索引


1
投票

我们可能会受到其他语言(例如 Javascript)的启发,并创建一个函数,如果项目存在则返回索引,否则返回 -1。

list_ = [5, 6, 7, 8]

def check_element(alist: list, item: any):
    if item in alist:
        return alist.index(item)
    else:
        return -1 

用法是

check1 = check_element(list_, 5)
check2 = check_element(list_, 9)

这个适合单线爱好者

check_element_one_liner = lambda alist, item: alist.index(item) if item in alist else -1

alternative_check1 = check_element_one_liner(list_, 5)
alternative_check2 = check_element_one_liner(list_, 9)

还有一个更短的版本:)

check_shorter = lambda a, i: a.index(i) if i in a else -1

0
投票

使用库,您可以使用 numpy 的

np.where(list == variable)
。 在普通 Python 中,我可以想到类似的东西:

idx = [idx for idx, item in enumerate(list) if item == variable][0]

但是这个解决方案并不是万无一失的,比如如果没有匹配到结果,就会崩溃。您可以在之前使用

if
来完成此操作:

if variable in list:
    idx = [idx for idx, item in enumerate(list) if item == variable][0]
else:
    idx = None

0
投票

我知道您想要获得一个 sublist ,其中仅包含原始列表中与特定条件匹配的元素(在您的示例中,您想要提取等于列表中第一个元素的所有元素)。

您可以通过使用内置过滤器功能来做到这一点,它允许您生成一个仅包含与特定条件匹配的元素的新列表。

这是一个例子:

a = [1,1,1,3,4]
variable = a[0]
b = list(filter(lambda x : x == variable, a)) # [1,1,1]

0
投票

此答案假设您仅在列表中搜索一个(第一个)匹配元素。

使用列表的

index
方法应该是正确的方法。您只需将其包装在
try
-
except
语句中即可。这是使用
next
的替代版本。

def get_index(data, search):
    return next((index for index, value in enumerate(data) if value == search), None)


my_list = list('ABCDEFGH')
print(get_index(my_list, 'C'))
print(get_index(my_list, 'X'))

输出是

2
None

0
投票

假设您想检查它是否存在并获取其索引,最有效的方法是使用

list.index
,它返回找到的第一个项目索引,否则会引发错误,因此可以按如下方式使用:

items = [1,2,3,4,5]
item_index = None
try:
    item_index = items.index(3)  # look for 3 in the list
except ValueError:
    # do item not found logic
    print("item not found")  # example
else:
    # do item found logic knowing item_index
    print(items[item_index])  # example, prints 3

还请避免命名变量

list
,因为它会覆盖内置函数
list


0
投票

如果您只是想检查该号码是否在列表中并打印它或打印它的索引,您可以简单地尝试以下操作:

ls = [1,2,3]
num = 2
if num in ls:
  # to print the num
  print(num)
  # to print the index of num
  print(ls.index(num))
else:
  print('Number not in the list')

0
投票
animals = ['cat', 'dog', 'rabbit', 'horse']
index = animals.index('dog')


print(index)
© www.soinside.com 2019 - 2024. All rights reserved.