5.4. Strings as Lists#

Remember, strings are a sequence, so you can index them.

my_string = 'Doe, John'
print(my_string[0])
print(my_string[-1])
print(my_string[2])
D
n
e

5.4.1. Splitting a Name#

When you split a string using split, a list is returned.

my_string = 'Doe, John'
print(my_string.split())
print(my_string.split(','))
print(my_string.split(', '))
['Doe,', 'John']
['Doe', ' John']
['Doe', 'John']

5.4.2. Splitting a Date#

5.4.2.1. Example 1#

date = '2023/05/23'
print(date.split('/'))

year, month, day = date.split('/')
print(year, month, day)
print(int(year), int(month), int(day))
['2023', '05', '23']
2023 05 23
2023 5 23

5.4.2.2. Example 2#

date = '05-23-2023'
print(date.split('-'))

month, day, year = date.split('-')
print(month, day, year)
print(int(month), int(day), int(year))
['05', '23', '2023']
05 23 2023
5 23 2023

5.4.2.3. Example 3#

date = '05-23-2023'

month, day, year = date[:2], date[3:5], date[6:]
print(month, day, year)
print(int(month), int(day), int(year))
05 23 2023
5 23 2023

5.4.3. Limiting splits#

my_string = 'range=start=3;end=20;step=2'
print(my_string.split('=', 1))
['range', 'start=3;end=20;step=2']

5.4.3.1. Extract the key-value pairs#

my_string = 'range=start=3;end=20;step=2'
range_options = my_string.split('=', 1)[1]
start, end, step = range_options.split(';')
start = start.split('=')[1] # or [-1]
end = end.split('=')[1] # or [-1]
step = step.split('=')[1] # or [-1]
print(start, end, step)
3 20 2

5.4.4. Splitting lines#

long_string='First line\nSecond line\nThird line'
print(long_string.split())
print(long_string.split('\n'))
print(long_string.splitlines())
['First', 'line', 'Second', 'line', 'Third', 'line']
['First line', 'Second line', 'Third line']
['First line', 'Second line', 'Third line']

5.4.5. Checking Character Type Manually#

my_string = 'EaS503!'

def char_type(char):
    if 'A' <= char <= 'Z':
        return 'Upper Case'
    elif 'a' <= char <= 'z':
        return 'Lower Case'
    elif '0' <= char <= '9':
        return 'Digit'
    else:
        return 'Not Alpha Numeric'


print(my_string[0], char_type(my_string[0]))
print(my_string[1], char_type(my_string[1]))
print(my_string[2], char_type(my_string[2]))
print(my_string[3], char_type(my_string[3]))
print(my_string[4], char_type(my_string[4]))
print(my_string[5], char_type(my_string[5]))
print(my_string[6], char_type(my_string[6]))
E Upper Case
a Lower Case
S Upper Case
5 Digit
0 Digit
3 Digit
! Not Alpha Numeric