会不会是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
我是一名优秀的程序员,十分优秀!