*Memo for a string and byte string(bytes
and bytearray
) functions:
- My post explains maketrans().
*Memo for a string and byte string(bytes
and bytearray
):
str.translate() and bytes.translate() or bytearray.translate() can translate the string and byte string respectively with the dictionary created by str.maketrans() and the byte string created by bytes.maketrans() or bytearray.translate() respectively as shown below:
*Memo for str.translate()
:
- The 1st argument is
table
(Required-Type:dict
):- A dictionary should be created with
str.maketrans()
. - Don't use
table=
.
- A dictionary should be created with
*Memo for bytes.translate()
and bytearray.translate()
:
- The 1st argument is
table
(Required-Type:Bytes-like object):- A byte string should be created with
bytes.maketrans()
. - Don't use
table=
.
- A byte string should be created with
- The 2nd argument is
delete
(Optional-Default:b""
-Type:Bytes-like object):- It's the zero or more bytes to detele.
- The one or more bytes of
delete
is prioritized for deletion rather than replacement.
<String>:
<str.maketrans() with one argument>:
table = str.maketrans({
'a': 'x',
'b': 'y',
'c': 'z',
'1':'one',
'2':'two',
'3':'three',
' ': ' ',
'd': '',
'e': '',
'f': '',
'g': '',
'h': ''
})
print('AaBbCc'.translate(table)) # AxByCz
print('1 2 3'.translate(table)) # one two three
print('DdEeFfGgHh'.translate(table)) # DEFGH
print(''.translate(table))
print(' '.translate(table))
# Nothing
*The below is equivalent to the above.
table = {
'a': 'x',
'b': 'y',
'c': 'z',
'1':'one',
'2':'two',
'3':'three',
' ': ' ',
'd': '',
'e': '',
'f': '',
'g': '',
'h': ''
}
print(''.join(table.get(c, c) for c in 'AaBbCc')) # AxByCz
print(''.join(table.get(c, c) for c in '1 2 3')) # one two three
print(''.join(table.get(c, c) for c in 'DdEeFfGgHh')) # DEFGH
print(''.join(table.get(c, c) for c in ''))
print(''.join(table.get(c, c) for c in ' '))
# Nothing
<str.maketrans() with two arguments>:
table = str.maketrans('abc', 'xyz')
print('AaBbCc'.translate(table)) # AxByCz
print('DdEeFfGgHh'.translate(table)) # DdEeFfGgHh
print(''.translate(table))
print(' '.translate(table))
# Nothing
table = str.maketrans('', '')
print('AaBbCc'.translate(table)) # AaBbCc
print('DdEeFfGgHh'.translate(table)) # DdEeFfGgHh
print(''.translate(table))
print(' '.translate(table))
# Nothing
<str.maketrans() with three arguments>:
table = str.maketrans('abc', 'xyz', 'defgh')
print('AaBbCc'.translate(table)) # AxByCz
print('DdEeFfGgHh'.translate(table)) # DEFGH
print(''.translate(table))
print(' '.translate(table))
# Nothing
table = str.maketrans('abc', 'xyz', 'abcdefgh')
print('AaBbCc'.translate(table)) # ABC
print('DdEeFfGgHh'.translate(table)) # DEFGH
table = str.maketrans('', '', '')
print('AaBbCc'.translate(table)) # AaBbCc
print('DdEeFfGgHh'.translate(table)) # DdEeFfGgHh
print(''.translate(table))
print(' '.translate(table))
# Nothing
<Byte String>:
<bytes.translate() & bytearray.translate() without delete
>:
table = bytes.maketrans(b'abc', b'xyz')
table = bytes.maketrans(bytearray(b'abc'), bytearray(b'xyz'))
table = bytearray.maketrans(b'abc', b'xyz')
table = bytearray.maketrans(bytearray(b'abc'), bytearray(b'xyz'))
print(b'AaBbCc'.translate(table))
# b'AxByCz'
print(bytearray(b'AaBbCc').translate(table))
# bytearray(b'AxByCz')
print(b'DdEeFfGgHh'.translate(table))
# b'DdEeFfGgHh'
print(bytearray(b'DdEeFfGgHh').translate(table))
# bytearray(b'DdEeFfGgHh')
print(b''.translate(table))
# b''
print(bytearray(b'').translate(table))
# bytearray(b'')
print(b' '.translate(table))
# b' '
print(bytearray(b' ').translate(table))
# bytearray(b' ')
table = bytes.maketrans(b'', b'')
table = bytes.maketrans(bytearray(b''), bytearray(b''))
table = bytearray.maketrans(b'', b'')
table = bytearray.maketrans(bytearray(b''), bytearray(b''))
print(b'AaBbCc'.translate(table))
# b'AaBbCc'
print(bytearray(b'AaBbCc').translate(table))
# bytearray(b'AaBbCc')
print(b'DdEeFfGgHh'.translate(table))
# b'DdEeFfGgHh'
print(bytearray(b'DdEeFfGgHh').translate(table))
# bytearray(b'DdEeFfGgHh')
print(b''.translate(table))
# b''
print(bytearray(b'').translate(table))
# bytearray(b'')
print(b' '.translate(table))
# b' '
print(bytearray(b' ').translate(table))
# bytearray(b' ')
<bytes.translate() & bytearray.translate() with delete
>:
table = bytes.maketrans(b'abc', b'xyz')
table = bytes.maketrans(bytearray(b'abc'), bytearray(b'xyz'))
table = bytearray.maketrans(b'abc', b'xyz')
table = bytearray.maketrans(bytearray(b'abc'), bytearray(b'xyz'))
d1 = b'defgh'
d2 = b'abcdefgh'
print(b'AaBbCc'.translate(table, delete=d1))
# b'AxByCz'
print(bytearray(b'AaBbCc').translate(table, delete=d1))
# bytearray(b'AxByCz')
print(b'AaBbCc'.translate(table, delete=d2))
# b'ABC'
print(bytearray(b'AaBbCc').translate(table, delete=d2))
# bytearray(b'ABC')
print(b'DdEeFfGgHh'.translate(table, delete=d1))
print(b'DdEeFfGgHh'.translate(table, delete=d2))
# b'DEFGH'
print(bytearray(b'DdEeFfGgHh').translate(table, delete=d1))
print(bytearray(b'DdEeFfGgHh').translate(table, delete=d2))
# bytearray(b'DEFGH')
print(b''.translate(table, delete=d1))
print(b''.translate(table, delete=d2))
# b''
print(bytearray(b'').translate(table, delete=d1))
print(bytearray(b'').translate(table, delete=d2))
# bytearray(b'')
print(b' '.translate(table, delete=d1))
print(b' '.translate(table, delete=d2))
# b' '
print(bytearray(b' ').translate(table, delete=d1))
print(bytearray(b' ').translate(table, delete=d2))
# bytearray(b' ')
table = bytes.maketrans(b'', b'')
table = bytes.maketrans(bytearray(b''), bytearray(b''))
table = bytearray.maketrans(b'', b'')
table = bytearray.maketrans(bytearray(b''), bytearray(b''))
d1 = b'defgh'
d2 = b'abcdefgh'
print(b'AaBbCc'.translate(table, delete=d1))
# b'AaBbCc'
print(bytearray(b'AaBbCc').translate(table, delete=d1))
# bytearray(b'AaBbCc')
print(b'AaBbCc'.translate(table, delete=d2))
# b'ABC'
print(bytearray(b'AaBbCc').translate(table, delete=d2))
# bytearray(b'ABC')
print(b'DdEeFfGgHh'.translate(table, delete=d1))
print(b'DdEeFfGgHh'.translate(table, delete=d2))
# b'DEFGH'
print(bytearray(b'DdEeFfGgHh').translate(table, delete=d1))
print(bytearray(b'DdEeFfGgHh').translate(table, delete=d2))
# bytearray(b'DEFGH')
print(b''.translate(table, delete=d1))
print(b''.translate(table, delete=d2))
# b''
print(bytearray(b'').translate(table, delete=d1))
print(bytearray(b'').translate(table, delete=d2))
# bytearray(b'')
print(b' '.translate(table, delete=d1))
print(b' '.translate(table, delete=d2))
# b' '
print(bytearray(b' ').translate(table, delete=d1))
print(bytearray(b' ').translate(table, delete=d2))
# bytearray(b' ')
Top comments (0)