Skip to content Skip to sidebar Skip to footer

Replace All Characters In A String With Asterisks

I have a string name = 'Ben' that I turn into a list word = list(name) I want to replace the characters of the list with asterisks. How can I do this? I tried using the .replace

Solution 1:

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

Instead, create a new string object with only asterisks, like this

word = '*' * len(name)

In Python, you can multiply a string with a number to get the same string concatenated. For example,

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

Solution 2:

You may replace the characters of the list with asterisks in the following ways:

Method 1

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

This method is better IMO because no extra resources are used as the elements of the list are literally "replaced" by asterisks.

Method 2

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

OR

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

In this method, a new list of the same length (containing only asterisks) is created and is assigned to 'word'.

Solution 3:

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

I will answer this question quite literally. There may be times when you may have to perform it as a single step particularly when utilizing it inside an expression

You can leverage the str.translate method and use a 256 size translation table to mask all characters to asterix

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

Note because string is non-mutable, it will create a new string inside of mutating the original one.

Solution 4:

Probably you are looking for something like this?

defblankout(instr, r='*', s=1, e=-1):
    if'@'in instr:
        # Handle E-Mail addresses
        a = instr.split('@')
        if e == 0:
            e = len(instr)
        return instr.replace(a[0][s:e], r * (len(a[0][s:e])))
    if e == 0:
        e = len(instr)
    return instr.replace(instr[s:e], r * len(instr[s:e]))

Post a Comment for "Replace All Characters In A String With Asterisks"