Python:如何在列表中按部分查找索引?

2024-06-26 08:28:38 发布

您现在位置:Python中文网/ 问答频道 /正文

result = []
reader = ['sdsd-sdds', 'asaad', 'deded - wdswd', '123' ]
str_1 = 'deded -'
for row in reader:
    if row.index(str_1) in row:
        result.extend(row.index(str_1) + 1)
print(result)

如何按部分查找索引,程序应打印['123']


Tags: inforindexifresultreaderrowprint
2条回答

语句row.index(str1)没有在reader中提供row的索引;它在row中为您提供了str1的索引,这对于您试图做的事情是没有用的,也就是在找到匹配项后,在reader中的行之后获取下一项(在字符串中的何处找到匹配项并不重要)

您可以通过执行reader.index(row)来实现这一点,但只需枚举reader就更容易了,这样您就已经有了可用的索引。使用index完全不是必需的,因为您也可以只执行str_1 in row

for i, row in enumerate(reader):
    if str_1 in row:
        result.append(reader[i+1])

我会这样做:

result = []
reader = ['sdsd-sdds', 'asaad', 'deded - wdswd', '123' ]
str_1 = 'deded -'
for x in reader:
    if str_1 in x:
        result.append(reader[reader.index(x) + 1])
print(result)

如果要在找到第一个值后停止,应在找到值后使用中断:

result = []
reader = ['deded - wdswd', 'asaad', 'deded - wdswd', '123' ]
str_1 = 'deded -'
for x in reader:
    if str_1 in x:
        result.append(reader[reader.index(x) + 1])
        break
print(result)

相关问题 更多 >