用星号替换字符串中的所有字符

2024-06-09 00:30:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子

name = "Ben"

把我变成一个名单

word = list(name)

我想用星号替换列表中的字符。我该怎么做?

我试过使用.replace函数,但这太具体了,不能同时更改所有字符。

我需要一个适用于任何字符串的通用解决方案。


Tags: 函数字符串name列表解决方案星号字符replace
3条回答

可以通过以下方式用星号替换列表中的字符:

方法1

for i in range(len(word)):
    word[i]='*'

这个方法在IMO中更好,因为没有使用额外的资源,因为列表中的元素实际上被星号“替换”。

方法2

word = ['*'] * len(word)

或者

word = list('*' * len(word))

在此方法中,将创建一个相同长度的新列表(仅包含星号),并将其分配给“word”。

I want to replace the characters of the list with asterisks. How can I do this?

我将非常准确地回答这个问题。有时您可能不得不将它作为一个单独的步骤来执行,特别是在表达式内部使用它时

您可以利用str.translate方法并使用256大小的转换表将所有字符屏蔽为asterix

>>> name = "Ben"
>>> name.translate("*"*256)
'***'

注意因为字符串是不可变的,它将在对原始字符串进行变异的内部创建一个新字符串。

I want to replace the characters of the list w/ asterisks

相反,创建一个只有星号的新字符串对象,如下所示

word = '*' * len(name)

在Python中,可以将一个字符串与一个数字相乘,从而得到连接的同一个字符串。例如

>>> '*' * 3
'***'
>>> 'abc' * 3
'abcabcabc'

相关问题 更多 >