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

时间:2016-02-22 17:09:03

标签: python string-formatting

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

1 个答案:

答案 0 :(得分:1)

在评论中报告了vaultahBhargav Rao,这是python的一个已知问题。我只需要找到另一种解决方案!

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