web-profile

Python List

Working with Lists in Python

Python list is mutable.

empty_list = []
empty_list_2 = list()

pets = ['dog', 'cat', 'parrot']

print(pets) # ['dog', 'cat', 'parrot']

print(len(pets)) # 3

print('Slicing the list:')

print(pets[0]) # dog (Get first element)

print(pets[-1]) # parrot (Get last element)

print(pets[0:2]) # ['dog', 'cat'] (Get first two elements)
print(pets[:2]) # ['dog', 'cat'] (Get first two elements)

print(pets[-2:]) # ['cat', 'parrot'] (Get last two elements)

print('Add item to end of the list:')
pets.append('hamster')
print(pets) # ['dog', 'cat', 'parrot', 'hamster']

print('Add item to beginning of the list:')
pets.insert(0, 'lizard')
print(pets) # ['lizard', 'dog', 'cat', 'parrot', 'hamster']

print('Add items from list to end of the list:')
pets_2 = ['fish', 'rat']
pets.extend(pets_2)
print(pets) # ['lizard', 'dog', 'cat', 'parrot', 'hamster', 'fish', 'rat']

print('Remove specific item from the list:')
pets.remove('fish')
print(pets) # ['lizard', 'dog', 'cat', 'parrot', 'hamster', 'rat']

print('Remove last item from the list:')
pet_popped = pets.pop()
print(pets) # ['lizard', 'dog', 'cat', 'parrot', 'hamster']
print(pet_popped) # rat

print('Reverse the list:')
pets.reverse()
print(pets) # ['hamster', 'parrot', 'cat', 'dog', 'lizard']

print('Sort the list of strings in alphabetical order:')
pets.sort()
print(pets) # ['cat', 'dog', 'hamster', 'lizard', 'parrot']

print('Get index of the element in the list:')
print(pets.index('dog')) # 1

print('Check if element is in the list:')
print('cat' in pets) # True
print('horse' not in pets) # True

print('Loop thru items in the list:')
for pet in pets:
    print('Pet item:', pet)

print('Loop thru items in the list with getting element index:')
for pet_index, pet_name in enumerate(pets): # enumerate(pets, start=1) to start from 1
    print('Pet index:', pet_index, ' pet name:', pet_name)

print('Join list items into a string:')
pets_str = '; '.join(pets)
print(pets_str) # cat; dog; hamster; lizard; parrot

print('Split string into list:')
pets_list = pets_str.split('; ')
print(pets_list) # ['cat', 'dog', 'hamster', 'lizard', 'parrot']

nums = [4, 2, 3, 5, 1]

print('Sort the list of numbers in ascending order:')
nums.sort()
print(nums) # [1, 2, 3, 4, 5]

print('Sort the list of numbers in descending order:')
nums.sort(reverse=True)
print(nums) # [5, 4, 3, 2, 1]

print('Get min, max and sum of the number list:')
print(min(nums)) # 1
print(max(nums)) # 5
print(sum(nums)) # 15

print('List comparison:')
list_1 = [1, 2]
list_2 = [1, 2]
print(list_1 == list_2) # True
print(list_1 is list_2) # False
print(id(list_1)) # 57889768
print(id(list_2)) # 19984904

list_c = list_1
print(list_1 == list_c) # True
print(list_1 is list_c) # True
print(id(list_1)) # 57889768
print(id(list_c)) # 57889768

List Comprehension

nums = [1, 2, 3, 4, 5]

# copy list
nums_copy = []
for n in nums:
    nums_copy.append(n)

print(nums_copy) # [1, 2, 3, 4, 5]

# copy list in one line via list comprehension
nums_copy2 = [n for n in nums]
print(nums_copy2) # [1, 2, 3, 4, 5]

#######
# create a list of squares
nums_squares = []
for n in nums:
    nums_squares.append(n*n)
print(nums_squares) # [1, 4, 9, 16, 25]

# create a list of squares using lambda function
nums_squares2 = list(map(lambda x: x*x, nums))
print(nums_squares2) # [1, 4, 9, 16, 25]

# create a list of squares using list comprehension
nums_squares3 = [n*n for n in nums]
print(nums_squares3) # [1, 4, 9, 16, 25]

#######
# copy only even numbers
nums_even = []
for n in nums:
    if n%2 ==0:
        nums_even.append(n)
print(nums_even) # [2, 4]

# copy only even numbers using lambda function
nums_even2 = list(filter(lambda x: x%2==0, nums))
print(nums_even2) # [2, 4]

# copy only even numbers using list comprehension
nums_even3 = [n for n in nums if n%2==0]
print(nums_even3) # [2, 4]

# list comprehension with 2 for loops
mix_list = [letter + str(num) for letter in 'abc' for num in range(3)]
print(mix_list) # ['a0', 'a1', 'a2', 'b0', 'b1', 'b2', 'c0', 'c1', 'c2']

Leave a Reply

Your email address will not be published.