partition in Python

Buy Me a Coffee

*Memos:

str.partition() and bytes.partition() or bytearray.partition() can split a string and byte string respectively at the 1st occurrence of a separator, searching from the left to the right as shown below:

*Memos:

  • The 1st argument is sep(Required-Type:str for str.partition() or bytes-like object for bytes.partition() and bytearray.partition()):
    • It’s the separator of the one or more characters to separate a string or byte string.
    • An empty string or byte string cannot be set.
    • Don’t use sep=.
  • It returns a tuple of 3 elements.
  • If sep isn’t found, a tuple of the original string or byte string itself and two empty strings or byte strings in order is returned as 3 elements.

<String>:

v = "It's very very good"

print(v.partition('er'))
# ("It's v", 'er', 'y very good')

print(v.partition('very'))
# ("It's ", 'very', ' very good')

                 # ↓
print(v.partition(' '))
# ("It's", ' ', 'very very good')

                 # ↓↓
print(v.partition('  '))
print(v.partition('ER'))
print(v.partition('VERY'))
print(v.partition('really'))
# ("It's very very good", '', '')

print(v.partition(''))
# ValueError: empty separator
v = ''

print(v.partition('er'))
# ('', '', '')

<Byte String(UTF-8)>:

bytes():

v = "It's very very good".encode()
v = b"It's very very good"

print(v.partition('er'.encode()))
print(v.partition(b'er'))
# (b"It's v", b'er', b'y very good')

print(v.partition(bytearray('er'.encode())))
# (b"It's v", bytearray(b'er'), b'y very good')

print(v.partition('very'.encode()))
print(v.partition(b'very'))
# (b"It's ", b'very', b' very good')

print(v.partition(bytearray('very'.encode())))
# (b"It's ", bytearray(b'very'), b' very good')

                 # ↓
print(v.partition(' '.encode()))
print(v.partition(b' '))
# (b"It's", b' ', b'very very good')

print(v.partition(bytearray(' '.encode())))
# (b"It's", bytearray(b' '), b'very very good')

                 # ↓↓
print(v.partition('  '.encode()))
print(v.partition(b'  '))
print(v.partition(bytearray('  '.encode())))
print(v.partition('ER'.encode()))
print(v.partition(b'ER'))
print(v.partition(bytearray('ER'.encode())))
print(v.partition('VERY'.encode()))
print(v.partition(b'VERY'))
print(v.partition(bytearray('VERY'.encode())))
print(v.partition('really'.encode()))
print(v.partition(b'really'))
print(v.partition(bytearray('really'.encode())))
# ("It's very very good", '', '')

print(v.partition(''.encode()))
print(v.partition(b''))
print(v.partition(bytearray(''.encode())))
# ValueError: empty separator
v = ''.encode()
v = b''

print(v.partition('er'.encode()))
print(v.partition(b'er'))
print(v.partition(bytearray('er'.encode())))
# (b'', b'', b'')

bytearray():

v = bytearray("It's very very good".encode())

print(v.partition('er'.encode()))
print(v.partition(b'er'))
print(v.partition(bytearray('er'.encode())))
# (bytearray(b"It's v"), bytearray(b'er'), bytearray(b'y very good'))

print(v.partition('very'.encode()))
print(v.partition(b'very'))
print(v.partition(bytearray('very'.encode())))
# (bytearray(b"It's "), bytearray(b'very'), bytearray(b' very good'))

                 # ↓
print(v.partition(' '.encode()))
print(v.partition(b' '))
print(v.partition(bytearray(' '.encode())))
# (bytearray(b"It's"), bytearray(b' '), bytearray(b'very very good'))

                 # ↓↓
print(v.partition('  '.encode()))
print(v.partition(b'  '))
print(v.partition(bytearray('  '.encode())))
print(v.partition('ER'.encode()))
print(v.partition(b'ER'))
print(v.partition(bytearray('ER'.encode())))
print(v.partition('VERY'.encode()))
print(v.partition(b'VERY'))
print(v.partition(bytearray('VERY'.encode())))
print(v.partition('really'.encode()))
print(v.partition(b'really'))
print(v.partition(bytearray('really'.encode())))
# (bytearray(b"It's very very good"), bytearray(b''), bytearray(b''))

print(v.partition(''.encode()))
print(v.partition(b''))
print(v.partition(bytearray(''.encode())))
# ValueError: empty separator
v = bytearray(''.encode())

print(v.partition('er'.encode()))
print(v.partition(b'er'))
print(v.partition(bytearray('er'.encode())))
# (bytearray(b''), bytearray(b''), bytearray(b''))

Similar Posts