gpt4 book ai didi

python - 不明白为什么 string.index ("word") 不工作

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:21 25 4
gpt4 key购买 nike

会不会是python中的方法.index("word")不起作用?我有这个列表:

['Viganello\n', 'Monday\n', '06 | 48\n', '06 | 58\n', '07 | 08\n', '07 | 18\n',
'07 | 28\n', '07 | 38\n', '07 | 48\n', '07 | 58\n', '08 | 08\n', '08 | 18\n',
'08 | 28\n', '08 | 38\n', '08 | 48\n', '08 | 58\n', '09 | 08\n', '09 | 18\n',
'09 | 28\n', '09 | 38\n', '09 | 53\n', '10 | 08\n', '10 | 23\n', '10 | 38\n',
'10 | 53\n'

字符串列表。然后我打印每个字符串并请求字符 "|" 的索引。为什么python找不到这个?这是我的代码:

f = open("Bus 5 Viganello.txt", 'r')
lines = f.readlines()
d = {}
for line in lines:
line = line.replace('\n','')
a = line.index("|")

错误是ValueError: substring not found。你能帮帮我吗?

最佳答案

你的第一行没有那个字符:

'Viganello\n'

第二个也没有:

'Monday\n'

仅从第三行开始出现该字符:

'06 | 48\n'

我怀疑你可能想在那个角色上拆分你的台词;不要使用 str.index();您可以使用 str.split() 代替;它还有一个额外的好处,即即使字符不在一行中,它也能工作。使用:

parts = [part.strip() for part in line.split('|')]

并且您将从您的输入行中获得一个元素列表,保证在 | 字符上拆分。该列表可能只包含一个元素,但这无关紧要。

如果你真的必须有 | 字符的索引,你可以使用 str.find() 并测试 -1 来查看它是否丢失,或使用 try..except 捕获 IndexError:

a = line.find('|')
if a == -1:
# oops, no such character

try:
a = line.index('|')
except IndexError:
# oops, no such character

关于python - 不明白为什么 string.index ("word") 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27178207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com