Methods for list
.join(); .index(); .append(); .insert(); .remove(); .sort(); .sorted(); .reverse(); .copy(); .deepcopy(); .pop(); .count(); .zip(); .zip(*iterables);
.join(): useful when you have a list of strings that need to be joined together into a single string value
input: list
ouput: string
>>> ', '.join(['tiger', 'sloth', 'fatcat'])
'tiger, sloth, fatcat'
>>> ' '.join(['My', 'name', 'is', 'Tiger'])
'My name is Tiger'
>>> 'ABC'.join(['My', 'name', 'is', 'Tiger'])
'MyABCnameABCisABCTiger'
.index()
input: list
output: int
E.g.1.
>>> spam = ['hello', 'world']
>>> spam.index('hello')
0
>>> spam.index('hello hello hello')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'hello hello hello' is not in list
.append()
input: list
output: list
E.g.1
>>> spam = ['cat', 'dog', 'bat']
>>> spam.append('moose')
>>> spam
['cat', 'dog', 'bat', 'moose']
.insert()
input: list
output: list
E.g.1
>>> spam = ['cat', 'dog', 'bat']
>>> spam.insert(1, 'chicken')
>>> spam
['cat', 'chicken', 'dog', 'bat']
.remove() - del statement is good to use when you know the index of the value you want to remove. The remove() method is good when you know the value you want to remove from the list.
input: list
output: list
>>> spam = ['cat', 'bat', 'rat', 'elephant']
>>> spam.remove('bat')
>>> spam
['cat', 'rat', 'elephant']
V.S.
>>> spam = ['cat', 'bat', 'rat', 'elephant']
>>> del spam[2]
>>> spam
['cat', 'bat', 'elephant']
>>>
.sort() - permanently changing the original list order; compare this with the function sorted()
input: list
output: list
E.g.1.
>>> spam = [2, 5, 3.14, 1, -7]
>>> spam.sort()
>>> spam
[-7, 1, 2, 3.14, 5]
>>> spam.sort(reverse=True)
>>> spam
[5, 3.14, 2, 1, -7]
E.g.2. true alphabetical order instead of default asciibetical order
Asciibetical order: uppercase letters come before lowercase letters
>>> spam = ['Alice', 'ants', 'Bob', 'badgers', 'Carol', 'cats']
>>> spam.sort()
>>> spam
['Alice', 'Bob', 'Carol', 'ants', 'badgers', 'cats']
Regular alphabetical order:
>>> spam.sort(key=str.lower)
>>> spam
['Alice', 'ants', 'badgers', 'Bob', 'Carol', 'cats']
Sorted function: (kept the original order)
E.g.1.
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> print(sorted(cars))
['audi', 'bmw', 'subaru', 'toyota']
>>> print(cars)
['bmw', 'audi', 'toyota', 'subaru']
.reverse() - printing a List in Reverse Order
input: list
output: list
E.g.1
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> cars.reverse()
>>> print(cars)
['subaru', 'toyota', 'audi', 'bmw']
copy.copy()
input: list
output: list
E.g.1.
>>> import copy
>>> spam = ['A', 'B', 'C', 'D']
>>> id(spam)
44684131
>>> cheese = copy.copy(spam)
>>> id(cheese) # cheese is a different list with different identity.
44685832
>>> cheese[1] = 42
>>> spam
['A', 'B', 'C', 'D']
>>> cheese
['A', 42, 'C', 'D']
Notice both spam and cheese have different IDs, that means they both pointing to different references. List is a mutable data type, however, copy.copy() actually creates a completely different list.
copy.deepcopy() - if the list you need to copy contains lists, then use the copy.deepcopy() function instead of copy.copy()
input: list
output: list
.pop(): removes the last item in a list, but it lets you work
with that item after removing it, and the popped item will be no longer existing in the list
input: list
output: string
E.g.1.
motorcycles = ['honda', 'yamaha', 'suzuki']
last_owned = motorcycles.pop()
print("The last motorcycle I owned was a " + last_owned.title() + ".")
The last motorcycle I owned was a Suzuki.
E.g.2
motorcycles = ['honda', 'yamaha', 'suzuki']
second_owned = motorcycles.pop(1)
print("The 2nd motorcycle I owned was a " + second_owned.title() + ".")
The 2nd motorcycle I owned was a Yamaha.
.count()
input: list
output: int
>>> li = ['hello', 'world', 'apple']
>>> li.count('hello')
1
.zip()
input: list
output: list of paired tuples
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zip(x, y)) # zip() in conjunction with the * operator can be used to unzip a list
>>> x == list(x2) and y == list(y2)
True
.zip(*iterables)
input: list
output: list of paired tuples
>>> grid = [['A', 'B', 'C', 'D'], [1, 2, 3, 4]]
>>> new_grid_obj = zip(*grid)
>>> print(list(new_grid_obj))
[('A', 1), ('B', 2), ('C', 3), ('D', 4)]