使用`format`获取字符串的最后一个字符

Get last character of string using `format`

我必须使用此模板从给定的 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 下的行为似乎相同。

正如评论中 vaultah and Bhargav Rao 所报告的那样,这是 python 的一个已知问题。我只需要找到替代解决方案!

>>> my_id = str(3412)
>>> "{}/{}/{}".format(my_id[-1], my_id[-2], my_id)
'2/1/3412'