如何通过在python中只给出列表中元素的特定部分来查找列表中元素的索引

如何通过在python中只给出列表中元素的特定部分来查找列表中元素的索引,python,Python,输出打印元素的索引,其中存在“dog” 使用任何内置函数都可以做到这一点,变量b只包含列表中元素的一部分。看起来您需要枚举 Ex: a=["cat on the wall" ,"dog on the table","tea in the cup"] b= "dog" for i in a: if b in i: print(a.index(i)) 没有直接的方法。其他函数(如排序的)接受用于比较元素的键。但索引取决于平等性。所以,你有两个选择 重写相等运算符。在您的情况下,这不是

输出打印元素的索引,其中存在“dog”


使用任何内置函数都可以做到这一点,变量b只包含列表中元素的一部分。

看起来您需要
枚举

Ex:

a=["cat on the wall" ,"dog on the table","tea in the cup"]
b= "dog"
for i in a:
  if b in i:
    print(a.index(i))

没有直接的方法。其他函数(如排序的)接受用于比较元素的键。但索引取决于平等性。所以,你有两个选择

  • 重写相等运算符。在您的情况下,这不是一个好主意,因为您有简单的字符串
  • 使用正则表达式重写循环
重新导入
对于a中的单词:
位置=重新搜索(b,单词)
如果位置不是无:
start_index=position.span()[0]
打印(开始索引)

正如blue\u注释所述,没有直接的方法。您可以简化使用。像

a=[“墙上的猫”、“桌上的狗”、“杯子里的茶”]
b=“狗”
打印([idx代表idx,枚举中的itm(a),如果itm中的b])
a=["cat on the wall" ,"dog on the table","tea in the cup"]
b= "dog"
for idx, v in enumerate(a):
    if b in v:
        print(idx) #-->1
a=["cat on the wall" ,"dog on the table","tea in the cup"]
b= "dog"

for z in a:
    if b in z:
        print(a.index(z))