我试图得到一个字典,其中病人ID作为键和名称作为值,但是,需要找到姓和名,并结合他们作为值,但我不断得到这个错误
fhand = open('PatientsNames.txt')
fhand.readline()
patientinfo = dict()
for line in fhand:
ids=line[:8]
if ids not in patientinfo:
patientinfo=[ids]
endlastname = line[' ':8]
lastname = line[8:endlastname]
firstname = line[endlastname+1:]
patientinfo[ids]=lastname + ',' + firstname
Traceback (most recent call last):
File "C:/Users/alexs/PycharmProjects/Hwk13_Application2_STARTER/Hwk13a_STARTER.py", line 23, in <module>
endlastname = line[' ':8]
TypeError: slice indices must be integers or None or have an __index__ method
Process finished with exit code 1
我假设您在编写
endlastname = line[' ':8]
时,试图获取索引8之后出现的第一个' '
的索引。在这种情况下,我们可以将您使用的行替换为:至于在字典里写新词条,那应该在一行中完成。用于新条目的行
patientinfo=[ids]
正在用只包含ids
值的列表替换字典。相反,我们将获取id
和lastname
/firstname
值,然后在一行中填充字典:综合起来:
在您的例子中,没有必要使用
str.find()
函数,因为我们可以使用str.split()
将line
拆分为' '
:请注意,您不需要显式地将要拆分的字符(
' '
)放在split()
函数中,因为这是split()
的默认值相关问题 更多 >
编程相关推荐