【问题标题】:Truncate beginning of string with str.format用 str.format 截断字符串的开头
【发布时间】:2015-08-23 15:16:37
【问题描述】:

我想将一个字符串向右对齐,但要截断它的开头而不是结尾。

我试过了:

my_str = '01234567890'
print "{0:>4.4}".format(my_str)

输出:

'0123'

期望的输出:

'7890'

有没有办法用format 做到这一点,还是我必须在喂它之前剪断绳子?

【问题讨论】:

  • 你只想要这个输出:'7890'?
  • 为什么不只是"{0}".format(my_str[-4:])
  • @izxle 不。提到here对于非数字类型,该字段表示最大字段大小 - 换句话说,将使用字段内容中的多少个字符。因此您将在开始自己
  • @PadraicCunningham,是的,我忘了在那里添加冒号。现在可以使用了,谢谢。
  • 天哪,@Padraic 你又忘记在这里写答案了 :(

标签: python string python-2.7 format


【解决方案1】:

您可以使用字符串的反转作为输入并再次反转输出。

my_str = "01234567890"
new_str = "{:4.4}".format(my_str[::-1])
desired_output = new_str[::-1]

print(my_str[::-1])
print(new_str)
print(desired_output)

输出:

09876543210
0987
7890

请注意,here (StackOverflow question 37974565) 描述了一种更复杂的方法,它提供了一个解决方案,如果输入字符串可能不会更改(子字符串,反向)。

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2015-12-14
    • 1970-01-01
    相关资源
    最近更新 更多