在 Python 中截断字符串
How to truncate a string in Python
使用字符串切片截断字符串,例如result = my_str[:5]
. 切片返回字符串的前 N 个字符。如果字符串比切片长,则可以将省略号添加到子字符串的末尾。
主程序
my_str = 'bobbyhadz.com' # ✅ truncate string to length of 5 characters result = my_str[:5] print(result) # 👉️ bobby # ✅ truncate string to length of 5 characters with ellipsis result = my_str[:5] + '...' if len(my_str) > 5 else my_str print(result) # 👉️ bobby...
我们使用字符串切片来截断字符串。
字符串切片的语法是my_str[start:stop:step]
.
索引是包含的
start
,而stop
索引是排他的(最多,但不包括)。Python 索引是从零开始的,因此字符串中的第一个字符的索引为0
,最后一个字符的索引为-1
or len(my_str) - 1
。
索引是独占的stop
(最多但不包括),因此切片返回字符串的前 N 个字符。
主程序
my_str = 'bobbyhadz.com' result = my_str[:5] print(result) # 👉️ bobby
该示例返回一个包含字符串前 5 个字符的子字符串。
如果字符串比切片长,则可以使用三元运算符添加省略号。
主程序
my_str = 'bobbyhadz.com' result = my_str[:5] + '...' if len(my_str) > 5 else my_str print(result) # 👉️ bobby...
如果满足条件,则返回语句左侧的表达式if
,否则按原样返回字符串。
或者,您可以使用格式化的字符串文字。
使用格式化字符串文字截断字符串
使用格式化字符串文字来截断字符串,例如
result = f'{my_str:.5}'
. 您可以在 f 字符串中使用表达式将字符串的长度限制为给定的字符数。
主程序
my_str = 'bobbyhadz.com' result = f'{my_str:.5}' print(result) # 👉️ bobby result = f'{my_str:.5}{"..." if len(my_str) > 5 else ""}' print(result) # 👉️ bobby...
格式化字符串文字 (f-strings) 让我们通过在字符串前加上
f
.主程序
var1 = 'bobby' var2 = 'hadz' result = f'{var1}{var2}' print(result) # 👉️ bobbyhadz
确保将表达式括在大括号 –{expression}
中。
格式化字符串文字还使我们能够
在表达式块中使用格式规范迷你语言。
主程序
my_str = 'bobbyhadz.com' result = f'{my_str:.5}' print(result) # 👉️ bobby
句点后的数字是字符串的最大大小。
该示例将字符串格式化为最大5
字符数。
如果字符串比切片长,则可以使用三元运算符添加省略号。
主程序
my_str = 'bobbyhadz.com' result = f'{my_str:.5}{"..." if len(my_str) > 5 else ""}' print(result) # 👉️ bobby...
如果需要从字符串中删除最后一个单词,请使用str.rsplit()
方法。
主程序
my_str = 'bobby hadz com' # ✅ Remove last word from string (using str.rsplit()) new_str = my_str.rsplit(' ', 1)[0] print(new_str) # 👉️ 'bobby hadz'
str.rsplit
方法使用提供的分隔符作为分隔符字符串返回字符串中的单词列表。
主程序
my_str = 'bobby hadz com' print(my_str.rsplit(' ')) # 👉️ ['bobby', 'hadz', 'com'] print(my_str.rsplit(' ', 1)) # 👉️ ['bobby hadz', 'com']
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
分隔器 | 在每次出现分隔符时将字符串拆分为子字符串 |
最大分裂 | 最多maxsplit 完成拆分,最右边的(可选) |
如果您需要从字符串中删除最后 2 个单词,请将maxsplit
参数设置为 2 并访问 index 处的列表项0
。
主程序
my_str = 'bobby hadz com' # 👇️ remove last word from string result = my_str.rsplit(' ', 1)[0] print(result) # 👉️ bobby hadz # 👇️ remove last 2 words from string result = my_str.rsplit(' ', 2)[0] print(result) # 👉️ bobby
该maxsplit
参数可以设置为从右至多拆分字符串 N 次。