首页 > 解决方案 > 从文件中查找字符串和字符串的索引到列表中

问题描述

在将其转换为列表后,我试图在 txt 文件中找到一个字符串,并且我想知道该字符串的索引。

txt 文件包含以下内容:

captcp 2010-2013 Hagen Paul Pfeifer 等 (c)

http://research.protocollabs.com/captcp/

总数据(有效输入):33016186 字节(264.13 Mbit)

吞吐量(goodput):543805.43 byte/s (4.35 Mbit/s)

我尝试了以下代码:

fo=open ('B_rand.txt', "r")
cont=fo.readlines()
print(cont)
if '4.35' in cont:
        print("yes:", cont.index('4.35')
 else:
        print("No")

输出: ['# captcp 2010-2013 Hagen Paul Pfeifer and others (c)\n', '# http://research.protocollabs.com/captcp/ \n', '# 总数据(goodput):33016186 byte ( 264.13 Mbit)\n', '# 吞吐量 (goodput): 543805.43 byte/s (4.35 Mbit/s)\n'] 无回溯(最近一次调用最后):文件“find.py”,第 9 行,索引 = cont.index('4.35') ValueError: '4.35' 不在列表中

我期待找到 (4.35) 及其索引。

标签: python

解决方案


4.35 在您的列表中不存在,因为它正在针对每个元素检查整个字符串。相反,您想在每个列表元素中搜索该字符串。为此,您可以使用任何元素,并从列表中获取每个元素,如下所示:

if any("4.35" in el for el in cont):

如果您只想打印有问题的索引,

print [i for i, el in enumerate(cont) if "4.35" in el]

推荐阅读