使用`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'
我必须使用此模板从给定的 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'