colloquial_numbers = ['veinti[\\s|-|]tres', 'veinti[\\s|-|]dos', 'veinti[\\s|-|]uno', 'veinte', 'tres', 'dos', 'uno']
symbolic_numbers = ['23', '22', '21', '20', '3', '2', '1']
body = ''
for n in coloquial_numbers:
body += """ input_text = re.sub(r"{}", "{}", input_text)\n""".format(coloquial_numbers[n], symbolic_numbers[n])
#body += """ input_text = re.sub(r'""" + coloquial_numbers[n] + """', '""" + symbolic_numbers[n] + """', input_text)\n"""
print(repr(body))
output:
input_text = re.sub(r"veinti[\s|-|]*tres", "23", input_text)
input_text = re.sub(r"veinti[\s|-|]*dos", "22", input_text)
input_text = re.sub(r"veinti[\s|-|]*uno", "21", input_text)
input_text = re.sub("tres", "3", input_text)
input_text = re.sub("dos", "2", input_text)
input_text = re.sub("uno", "1", input_text)
迭代此列表時出現的錯誤:
Traceback (most recent call last):
body += """ input_text = re.sub(r"{}", "{}", input_text)\n""".format(coloquial_numbers[n], symbolic_numbers[n])
TypeError: list indices must be integers or slices, not str
如何修復此錯誤?為什么在迭代這些字符串列表時會發生這種情況,而在其他列表中不會發生這種情況?
在這里,您正在對字符串列表進行迭代:
n
是迭代變量,這意味著它被分配給列表中每個連續元素的值,而不是其索引。然后運行colloquial_numbers[n]
,實際上是運行colloquial_numbers['veinti[\\s|-|]tres']
,這是不正確的python語法,因為您不能使用字符串索引列表你可以做的是: