python - 如何使用 .replace() 函数将字符串的最后 4 个字符以外的所有字符更改为 # 符号?

标签 python string replace

我正在尝试将字符串中除最后四个字符以外的所有字符更改为输出中的 # 符号。
这是我目前拥有的

>>> v
'0123456789'
>>> for ch in v:
...     if ch in v:
...             v = v.replace(ch, '#')
...
>>> print v
##########

如您所见,所有字符都被替换了。

我尝试过使用所有类型的索引切片方法,但似乎没有任何效果!我也试过...

>>> v = '0123456789'
>>> for ch in v:
...     if ch in v:
...             v = v[0:-4].replace(ch, '#') + v[-3:]
...
>>> print v
789

但是,正如您在这里看到的,它摆脱了所有其他字符。
请帮忙。

最佳答案

Python 字符串是不可变的,所以像这样的东西应该可以工作。没有循环

>>> v = '0123456789'
>>> '#'*(len(v) - 4)+v[-4:]
'######6789'

关于替换的事情是,如果你有 333333 并且你 replace('3', '#') 会怎么样?一切都变成了 #,对吧?

关于python - 如何使用 .replace() 函数将字符串的最后 4 个字符以外的所有字符更改为 # 符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842451/

相关文章:

python - 将常量从外部文件导入到 python 中

python - 创建一个删除列表中重复项的函数

根据 R 中另一个数据框中的部分文本替换一列中的值

regex - 使用正则表达式有选择地搜索和替换某些行

Python - 复制目录中的多个文件

c中的字符指针

C - 反转字符串数组中单词的顺序

java - 如何使用递归返回子字符串数组

android - Android SQLite替换成无法正常工作

python - Scrapy全局名称子字符串未定义