我必须使用此模板从给定的id构建路径:
<last digit of id>/<second last digit of id>/<full id>
例如,如果我的ID为3412
,则预期结果为:
2/1/3412
id应该至少有2位数。 我尝试的第一件事是:
>>> "{my_id[3]}/{my_id[2]}/{my_id}".format(my_id=str(3412))
'2/1/3412'
但只有当id为4位数时才会起作用。
所以我期待的是:
>>> "{my_id[-1]}/{my_id[-2]}/{my_id}".format(my_id=str(3412))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: string indices must be integers
我的问题是为什么我不能在字符串说明符中使用负数索引?为什么Python告诉我我没有使用整数索引?我在documentation中找不到任何关于它的内容。
我知道有很多其他方法可以做到这一点,但我只是好奇为什么这个不起作用。
我使用python 2.7,但在python 3.4下行为似乎相同。
答案 0 :(得分:1)
在评论中报告了vaultah和Bhargav Rao,这是python的一个已知问题。我只需要找到另一种解决方案!
>>> my_id = str(3412)
>>> "{}/{}/{}".format(my_id[-1], my_id[-2], my_id)
'2/1/3412'