[]
: Utilizam-se para representar uma lista
my_list = [1, 2, 3]
type(my_list)
list
list()
: Construtor utilizado para criar uma lista
this_list = list("volvo")
type(this_list)
list
Propriedades de uma lista:
duplicates_list = [2, 2]
duplicates_list
[2, 2]
diff_types_list = [1, "sand", 1.75, True]
diff_types_list
[1, 'sand', 1.75, True]
Os seus elementos têm uma ordem definida e essa ordem não se irá alterar. Consequentemente, podem ser acedidos através de um índice.
É possível alterar, adicionar e remover itens numa lista, após esta ter sido criada.
colors = ["blue", "red", "yellow"] #índices começam em 0
colors[2]
'yellow'
transports = ["car", "plane", "bike"] #neste caso, o índice -1 refere-se ao último elemento
transports[-2]
'plane'
vegetables = ["carrot", "brocolli", "mushroom", "spinach"]
vegetables[1:]
['brocolli', 'mushroom', 'spinach']
animals = ["cat", "dog", "bird", "elephant", "zebra"]
animals[:2]
['cat', 'dog']
food = ["spaghetti", "burguer", "pizza"]
food[1:2]
['burguer']
prog_languages = ["C", "C#", "C++", "Java", "R"]
prog_languages[-4:-1]
['C#', 'C++', 'Java']
vowels = ["a", "e", "i", "o", "u"]
vowels[2] = "I"
vowels
['a', 'e', 'I', 'o', 'u']
subjects = ["maths", "physics", "geometry", "chemistry"]
subjects[1:3] = ["english", "german"]
subjects
['maths', 'english', 'german', 'chemistry']
countries = ["portugal", "denmark", "mozambique", "brazil"]
countries[1:2] = ["belgium", "switzerland"]
countries
['portugal', 'belgium', 'switzerland', 'mozambique', 'brazil']
cities = ["viseu", "coimbra", "aveiro"]
cities[1:3] = ["braga"]
cities
['viseu', 'braga']
numbers = ["one", "two", "three"]
numbers.append("four")
numbers
['one', 'two', 'three', 'four']
sports = ["football", "tennis"]
sports.insert(1, "rugby")
sports
['football', 'rugby', 'tennis']
apparel = ["trousers", "skirts"]
shoes = ["boots", "slippers"] #também poderia ser um tuplo, por exemplo
apparel.extend(shoes)
apparel
['trousers', 'skirts', 'boots', 'slippers']
planets = ["mercury", "venus", "earth", "pluto"]
planets.remove("pluto")
planets
['mercury', 'venus', 'earth']
summer = ["sun", "beach"]
summer.clear()
summer
[]
body_parts = ["arms", "legs", "head"]
body_parts.pop(1) #se o índice não for especificado, remove o último elemento
body_parts
['arms', 'head']
body_parts = ["arms", "legs", "head"]
del body_parts[1]
body_parts
['arms', 'head']
newlist = [expression for item in iterable if condition == True]
: Sintaxe de uma lista em compreensão (a condição é opcional)
plants = ["rose", "cactus", "bamboo", "daisy"]
plants_with_s = []
for plant in plants:
if "s" in plant:
plants_with_s.append(plant)
plants_with_s
['rose', 'cactus', 'daisy']
plants = ["rose", "cactus", "bamboo", "daisy"]
plants_with_s = [plant for plant in plants if "s" in plant]
plants_with_s
['rose', 'cactus', 'daisy']
birds = ["chicken", "blackbird", "flamingo"]
birds_fixed = [bird if bird!="blackbird" else "common blackbird" for bird in birds]
birds_fixed
['chicken', 'common blackbird', 'flamingo']
weekdays = ["monday", "Tuesday", "wednesday", "thursday", "friday"]
weekdays.sort() #também funciona para números
weekdays
['Tuesday', 'friday', 'monday', 'thursday', 'wednesday']
makeup = ["blush", "eyeshadow", "lipgloss"]
makeup.sort(reverse=True)
makeup
['lipgloss', 'eyeshadow', 'blush']
def my_sort_function(x):
return abs(x)
x = [-17, -1, 3, -2, 4]
x.sort(key=my_sort_function)
x
[-1, -2, 3, 4, -17]
weekend = ["saturday", "sunday"]
weekend.reverse()
weekend
['sunday', 'saturday']
months = ["january", "february", "march"]
new_list = months.copy()
new_list
['january', 'february', 'march']
months = ["january", "february", "march"]
my_new_list = list(months)
my_new_list
['january', 'february', 'march']
money = ["euro", "pound", "dollar", "euro"]
money.count("euro")
2
teams = ["slbenfica", "fcporto", "scbraga"]
teams.index("fcporto")
1
()
: Utilizam-se para representar um tuplo
my_tuple = (1,2,3) #para criar um tuplo com um único elemento, é necessário colocar uma vírgula no fim
type(my_tuple)
tuple
tuple()
- Construtor utilizado para criar um tuplo
this_tuple = tuple((4,8))
type(this_tuple)
tuple
Propriedades de um tuplo:
duplicates_tuple = (2,2)
duplicates_tuple
(2, 2)
diff_types_tuple = (2, "ana", 3.45, False)
diff_types_tuple
(2, 'ana', 3.45, False)
Os seus elementos têm uma ordem definida e essa ordem não se irá alterar. Consequentemente, podem ser acedidos através de um índice.
Não é possível alterar, adicionar e remover itens num tuplo, após este ter sido criado.
Análogo à lista
specialty = ("cardiology", "dermatology", "neurology")
(heart, skin, brain) = specialty
print(heart)
print(skin)
print(brain)
cardiology dermatology neurology
books = ("The Great Gatsby", "Don Quixote", "War and Peace", "Anna Karenina")
(fitzgerald, cervantes, *tolstoi) = books
print(fitzgerald)
print(cervantes)
print(tolstoi)
The Great Gatsby Don Quixote ['War and Peace', 'Anna Karenina']
Análogos aos que foram mencionados na última secção relativa à lista
{}
: Utilizam-se para representar um conjunto
my_set = {1,2,3} #caso não tenha elementos já não se trata de um conjunto, mas sim de um dicionário
type(my_set)
set
set()
- Construtor utilizado para criar um conjunto
this_set = set(("banana", "apple", "orange"))
type(this_set)
set
Propriedades de um conjunto:
no_duplicates_set = {"tree", "tree"}
no_duplicates_set
{'tree'}
diff_types_set = {2, "cinema", 5.67, False}
diff_types_set
{2, 5.67, False, 'cinema'}
Os seus elementos não têm uma ordem definida e essa ordem pode alterar-se. Consequentemente, não podem ser acedidos através de um índice ou de uma chave.
É possível adicionar e remover itens num conjunto, após este ter sido criado.
singers = {"Lady Gaga", "Shakira"}
singers.add("Beyoncé")
singers
{'Beyoncé', 'Lady Gaga', 'Shakira'}
bands = {"Maroon 5", "The Script"}
dead_bands = {"Nirvana", "Queen"} #também poderia ser uma lista, por exemplo
bands.update(dead_bands)
bands
{'Maroon 5', 'Nirvana', 'Queen', 'The Script'}
jewelry = {"ring", "earring", "bracelet"}
jewelry.remove("ring")
jewelry
{'bracelet', 'earring'}
jewelry = {"ring", "earring", "bracelet"}
jewelry.discard("ring")
jewelry
{'bracelet', 'earring'}
weather = {"sunny", "rainy", "foggy"}
weather.pop()
weather
{'rainy', 'sunny'}
periodic_table = {"mg", "na", "li"}
periodic_table.clear()
periodic_table
set()
living_painters = {"Cindy Sherman", "Liu Xiaodong"}
dead_painters = {"Vincent van Gogh", "Pablo Picasso"}
painters = living_painters.union(dead_painters)
painters
{'Cindy Sherman', 'Liu Xiaodong', 'Pablo Picasso', 'Vincent van Gogh'}
it_brands = {"microsoft", "apple", "google"}
fruits = {"apple", "cherry", "strawberry"}
it_brands.intersection_update(fruits)
it_brands
{'apple'}
x = {1,2,3}
y = {3,4,5}
z = x.intersection(y)
z
{3}
motorcycle_brands = {"ducati", "yamaha"}
piano_brands = {"yamaha"}
motorcycle_brands.symmetric_difference_update(piano_brands)
motorcycle_brands
{'ducati'}
chocolate_cake_ingredients = {"eggs", "sugar", "flour", "chocolate"}
strawberry_cake_ingredients = {"eggs", "sugar", "flour", "strawberry"}
flavours = chocolate_cake_ingredients.symmetric_difference(strawberry_cake_ingredients)
flavours
{'chocolate', 'strawberry'}
s1 = {"a", "b", "c", "d", "e"}
s2 = {"a", "b"}
s1.issuperset(s2)
True
set1 = {1,2}
set2 = {1,2,3,4}
set1.issubset(set2)
True
first_set = {True, False}
second_set = {False}
first_set.isdisjoint(second_set)
False
original_set = {"ball"}
copied_set = original_set.copy()
copied_set
{'ball'}
a = {1.5, 3.45}
b = {4.75, 1.5}
c = a.difference(b)
c
{3.45}
d = {True, 3}
e = {3, 4}
d.difference_update(e)
d
{True}
{}
: Utilizam-se para representar um dicionário
my_dict = {
"name": "John",
"surname": "Doe",
"job": "lawyer"
}
type(my_dict)
dict
dict()
- Construtor utilizado para criar um dicionário
this_dict = dict({"ground": "bus", "air": "airplane", "water": "boat"})
type(this_dict)
dict
Propriedades de um dicionário:
no_duplicates_dict = {
"university": "Minho",
"location": "Braga",
"campus": "Azurém",
"campus": "Gualtar"
}
no_duplicates_dict #o valor duplicado irá sobrescrever o valor existente
{'university': 'Minho', 'location': 'Braga', 'campus': 'Gualtar'}
computer = {
"brand": "Toshiba",
"touch": True,
"colors": ["grey", "black", "white"]
}
computer
{'brand': 'Toshiba', 'touch': True, 'colors': ['grey', 'black', 'white']}
Os seus elementos têm uma ordem definida e essa ordem não se irá alterar. Consequentemente, podem ser acedidos através de uma chave.
É possível alterar, adicionar e remover itens num dicionário, após este ter sido criado.
song = {
"name": "Grenade",
"artist": "Bruno Mars",
"year": 2010
}
song["year"]
2010
song = {
"name": "Grenade",
"artist": "Bruno Mars",
"year": 2010
}
song.get("year")
2010
show = {
"name": "The Ellen DeGeneres Show",
"TV host": "Ellen DeGeneres",
"country of origin": "USA"
}
show.keys()
dict_keys(['name', 'TV host', 'country of origin'])
cr7 = {
"team": "Manchester United",
"children": 4,
"nationality": "Portuguese"
}
cr7.values()
dict_values(['Manchester United', 4, 'Portuguese'])
car = {
"brand": "Volkswagen",
"color": "grey",
"year": 2016
}
car.items()
dict_items([('brand', 'Volkswagen'), ('color', 'grey'), ('year', 2016)])
sports_club = {
"name": "FC Barcelona",
"stadium": "Camp Nou",
"coach": "Pep Guardiola"
}
sports_club["coach"] = "Ronald Koeman"
sports_club
{'name': 'FC Barcelona', 'stadium': 'Camp Nou', 'coach': 'Ronald Koeman'}
sports_club = {
"name": "FC Barcelona",
"stadium": "Camp Nou",
"coach": "Pep Guardiola"
}
sports_club.update({"coach": "Ronald Koeman"})
sports_club
{'name': 'FC Barcelona', 'stadium': 'Camp Nou', 'coach': 'Ronald Koeman'}
Análogo à secção anterior
singer = {
"name": "Amy Winehouse",
"sex": "female",
"age": 27,
2008: ["Album of the Year", "Record of the Year"]
}
singer.pop("age")
singer
{'name': 'Amy Winehouse', 'sex': 'female', 2008: ['Album of the Year', 'Record of the Year']}
singer = {
"name": "Amy Winehouse",
"sex": "female",
"age": 27,
2008: ["Album of the Year", "Record of the Year"]
}
del singer["age"]
singer
{'name': 'Amy Winehouse', 'sex': 'female', 2008: ['Album of the Year', 'Record of the Year']}
country = {
"name": "Portugal",
"money": "euro",
"language": "portuguese"
}
country.popitem()
country
{'name': 'Portugal', 'money': 'euro'}
cat = {
"date of birth": "30th of september of 2020",
"colors": ["white", "black", "yellow"]
}
cat.clear()
cat
{}
Análogo à lista
keys = ("monday", "tuesday", "wednesday")
values = "weekday"
new_dict = dict.fromkeys(keys, values)
new_dict
{'monday': 'weekday', 'tuesday': 'weekday', 'wednesday': 'weekday'}
game = {
"name": "LoL",
"mode": "multiplayer",
"year": 2009
}
game.setdefault("developer", "Riot Games")
game
{'name': 'LoL', 'mode': 'multiplayer', 'year': 2009, 'developer': 'Riot Games'}
1) Escreva uma função que recebe uma lista e retorna um par com o primeiro e o último elemento dessa lista.
2) Escreva uma função que retorna um conjunto com os elementos que existem apenas no primeiro conjunto e não no segundo conjunto.
3) Escreva uma função que retorna o maior elemento de uma lista.
4) Escreva uma função que retorna a distância euclidiana entre dois pontos.
5) Escreva uma função que retorna a soma dos números que são múltiplos de 3 ou 5 entre 1 e um limite, sendo que esse limite é um parâmetro.
6) Escreva uma função que filtra a altura e o peso de estudantes, características estas que, por sua vez, estão armazenadas num dicionário.
7) Escreva uma função que retorna todas as combinações de pares de 0 até um limite, com recurso a uma lista em compreensão.
8) Escreva uma função que retorna o resultado de somar os elementos de cada tuplo presente numa lista de tuplos.
9) Escreva uma função que retorna os $n$ menores números de uma lista de números.
10) Escreva uma função que recebe uma lista de listas de números e retorna a sublista que resulta na maior soma.