让我们说我们有一个.txt文件,像这样(都在一行上):
A2.)43@|@C3::#
因此,我们希望将“ A”用作值“。)”的键,将“ 4”用作值“ @ | @”等的键。键后的数字告诉我们要读取多少个字符作为值,后面的字符是字典中下一项的键。
我正在努力的事情是编写循环。我在想,我们可能想使用for循环遍历文件的长度。但是我真的不知道如何进行。
答案 0 :(得分:0)
这对我有用
stringText = "A2.)43@|@C3::#"
i=0
myDictionary = {}
while True:
try:
#First we grab the key character using i
keyCharacter = stringText[i]
#Then we grab the next character which will tell us how many characters they value will have
# We also convert it to integer for future use
valueLength = int(stringText[i+1])
#Then we grab the value by slicing the string
valueCharacters = stringText[i+2:i+2+valueLength]
#We add this to the dictionary
myDictionary[keyCharacter] = valueCharacters
#We update i to continue where we left off
i = i+2+valueLength
except IndexError:
break
print myDictionary
代替“ try andexcept”,您还可以看到该字符串有多长,并且执行do以及if语句在我大于字符串的长度时中断循环。