sequências e dicionários

Propaganda
PROGRAMAÇÃO EM
JOGOS DIGITAIS
Frutuoso Silva
Linguagem de Programação
Python
--- www.python.org
1
Sequências em Python
String
Tuplo
Lista
Sequências - Propriedades
! São indexáveis
! Posso
! São iteráveis
! Posso
! aceder a cada elemento individualmente;
percorrer todos os elementos da sequência;
São particionáveis
! Posso
aceder a partes (slices) da sequência;
2
Sequências
! Str1 = “Isto é uma string!”
! Tuplo1 = (1, 2, 3, 4)
! Lista1 = [1, 2, 3, 4]
O que acontece quando fazemos o print das
sequências anteriores?
Sequências
! print Str1
---- Isto é uma string!
! print Tuplo1
---- (1, 2, 3, 4)
! print Lista1
---- [1, 2, 3, 4]
3
String
Str1 = "Isto é uma string!"
print Str1
#indexação de um elemento
print Str1[5]
#slicing seq[inicio:fim:intervalo]
print Str1[6:]
print Str1[:6]
print Str1[::3]
print Str1[7:10]
String
Str1 = "Isto é uma string!"
print Str1
#indexação de um elemento
print Str1[5]
#slicing seq[inicio:fim:intervalo]
print Str1[6:]
--- uma string!
print Str1[:6]
--- Isto é
print Str1[::3]
--- Io atn
print Str1[7:10]
--- uma
4
Tuplo
Tuplo1 = (1, 2, 3, 4)
print Tuplo1
#indexação de um elemento
print Tuplo1[1]
#slicing
print Tuplo1[1:3]
print Tuplo1[::2]
Tuplo
Tuplo1 = (1, 2, 3, 4)
print Tuplo1
---- (1, 2, 3, 4)
#indexação de um elemento
print Tuplo1[1]
---- 2
#slicing seq[inicio:fim:intervalo]
print Tuplo1[1:3]
---- (2, 3)
print Tuplo1[::2]
---- (1, 3)
5
Lista
Lista1 = [1, 2, 3, 4]
print Lista1
#indexação de um elemento
print Lista1[2]
#slicing seq[inicio:fim:intervalo]
print Lista1[1::2]
print Lista1[1:4]
print Lista1[-2]
Lista
Lista1 = [1, 2, 3, 4]
print Lista1
---- [1, 2, 3, 4]
#indexação de um elemento
print Lista1[2]
---- 3
#slicing seq[inicio:fim:intervalo]
print Lista1[1::2]
---- [2, 4]
print Lista1[1:4]
---- [2, 3, 4]
print Lista1[-2]
---- 3
6
Tuplos vs Listas
! Qual é a diferença entre os tuplos e as listas?
! Para
além dos ( ) vs [ ]
! …
Tuplos vs Listas
! Qual é a diferença entre os tuplos e as listas?
! Para
além dos ( ) vs [ ]
! Ser alterável ou não
print Str1[5] = ‘x’
---- Not allowed
print Tuplo1[2] = 5
---- Not allowed
print Lista1[2] = 5
---- Allowed
7
Tuplos vs Listas
! Principais operações com tuplos
Expressão Python
Resultado
Descrição
(1,2,3) + (4,5,6)
(1,2,3,4,5,6)
Concatenação
3 in (1,2,3,4)
True
Pertence ou é
membro de
for x in (1, 2, 3): print x
123
Iteração
(‘Yes’, )* 3
(‘Yes’, ‘Yes’, ‘Yes’) Repetição
len( (1,2,3,4) )
4
Comprimento
max( (1,2,3,4) )
4
Máximo
min( (1,2,3,4) )
1
Minímo
Tuplos vs Listas
! Operações com listas
Expressão Python
Resultado
Descrição
[1,2,3] + [4,5,6]
[1,2,3,4,5,6]
Concatenação
3 in [1,2,3,4]
True
Pertence ou é
membro de
for x in [1, 2, 3]: print x
123
Iteração
[‘Yes’, ]* 3
[‘Yes’, ‘Yes’, ‘Yes’] Repetição
len( [1,2,3,4] )
4
Comprimento
max([1,2,3,4])
4
Máximo
min([1,2,3,4])
1
Minímo
8
Tuplos vs Listas
! Qual é a diferença entre os tuplos e as listas?
! Para
! além dos ( ) vs [ ]
Mas as operações são as mesmas !!!
Tuplos vs Listas
! Qual é a diferença entre os tuplos e as listas?
! Para
! além dos ( ) vs [ ]
Mas as operações são as mesmas !!!
Contudo as listas possuem
também
- Métodos específicos
9
Listas
! As listas possuem métodos (i.e., são um objecto)
! Adicionar
! Apagar
elementos;
elementos;
! Pesquisar
elementos;
! ...
Listas
! Adicionar elementos à lista:
li = ['a', 'b', 'list', 'z', 'example']
# Adicionar um novo elemento
li.append('new')
print li
['a', 'b', 'list', 'z', 'example', 'new']
10
Listas
! Adicionar elementos à lista:
li = ['a', 'b', 'list', 'z', 'example']
# Adicionar um novo elemento numa posição X
li.insert(2,'new')
print li
['a', 'b', ’new', 'z', 'example’]
Listas
! Adicionar elementos à lista:
li = ['a', 'b', 'list', 'z', 'example']
# Adicionar elementos de uma lista
li.extend([‘two’,’elements’])
print li
['a', 'b', ’new', 'z', 'example', 'new', 'two', 'elements']
11
Listas
! Adicionar elementos à lista:
# Adicionar um elemento
li.append(’new')
li.insert(2,’new')
# Concatenar/juntar listas
li.extend([‘two’,’elements’])
Listas
! Adicionar elementos à lista:
li = ['a', 'b’, ’p’]
# Adicionar elementos
li.extend([’w’, ‘x’])
print li
['a', 'b’, ’p’, ‘w’, ‘x’]
12
Listas
! Adicionar elementos à lista:
li = ['a', 'b’, ’p’]
# Adicionar um elemento
li.append([’w’, ‘x’])
print li
Como funciona?
Listas
! Adicionar elementos à lista:
li = ['a', 'b’, ’p’]
# Adicionar um novo elemento
li.append([’w’, ‘x’])
print li
['a', 'b’, ’p’, [‘w’, ‘x’]]
print li[-1]
[‘w’, ‘x’]
13
Listas
! Pesquisar elemento na lista:
li = [’yes', 'bye’, ’no’, ‘bye’]
# Pesquisar a 1ª ocorrência do elemento
print li.index(‘bye’)
Apagar um elemento da lista:
# Apaga a 1ª ocorrência do elemento
li.remove(‘bye’)
print li
! Listas
! Contar os elemento da lista:
li = [’yes', 'bye’, ’no’, ‘bye’]
# Contar o nº elementos iguais a X
print li.count(‘bye’)
Retirar último elemento da lista:
# Remove e devolve o último elemento
print li.pop()
! 14
Listas
! Ordenar a lista:
li = [’yes', 'bye’, ’no’, ‘bye’]
# Ordena a lista por ordem crescente
li.sort()
print li
! Inverter a lista:
# Inverte a lista
li.reverse()
print li
Listas
! ! As listas em Python permitem efectuar um conjunto
vasto de operações sem necessidade de
programar.
É a estrutura de dados mais versátil em Python !
morada = ['Rua XY', '5', ’1100',
’Lisboa’]
15
Dicionários
O que é um dicionário?
Como funciona esta estrutura de dados?
O que é um Dicionário?
! ! ! É uma estrutura de dados similar a uma lista mas
mais genérica.
Numa lista os índices têm de ser inteiros;
Num dicionário os índices podem ser de diversos
tipos;
16
O que é um Dicionário?
! ! Podemos pensar num dicionário como um
mapeamento entre um conjunto de índices e um
conjunto de valores.
Dictionaries consist of pairs (called items) of keys
and their corresponding values.
Dicionário
! Como se cria um dicionário?
dic1 = {’Ana': '2341', ’Bia': '9102', ’Ze': '3258'}
dic2 = dict()
! Adicionar item ao dicionário
dic2 = dict()
#Empty dictionary
dic2[‘John’] = ‘1111’
print dic2
17
Dicionário
! Como se cria um dicionário?
dic1 = {’Ana': '2341', ’Bia': '9102', ’Ze': '3258'}
dic2 = dict()
! Adicionar item ao dicionário
dic2 = dict()
# Empty dictionary
dic2[‘John’] = ‘1111’
print dic2
{'John': '1111'}
Dicionário
dic2 = dict() # Empty dictionary
dic2[‘John’] = ‘1111’
dic2[‘Leo’] = ‘2222’
print dic2
{'John': '1111', 'Leo': '2222'}
print dic2[‘Leo’]
2222
18
Dicionário
! Adicionar/Actualizar um item
dic2 = dict()
# Empty dictionary
dic2[‘John’] = ‘1111’
print dic2
{'John': '1111'}
dic2[‘Kate’] = ‘3333’
# Add new entry
dic2[‘John’] = ‘5555’
# Update existing entry
print dic2[‘John’]
5555
Dicionário
! Apagar um item do dicionário
dict = {'Name': 'Maria', 'Age': 7, 'Class': 'First’}
print dict
{'Age': 7, 'Name': 'Maria', 'Class': 'First'}
del dict['Name'] # remove entry with key 'Name'
print dict
{'Age': 7, 'Class': 'First'}
dict.clear()
# remove all entries in dict
del dict
# delete entire dictionary
19
Dicionário
! Propriedades das chaves de um dicionário:
! Não
é permitida mais do que uma entrada por chave.
Logo não são permitidas chaves repetidas;
! As
chaves são imutáveis. Logo é permitido ter strings,
números e tuplos mas não listas.
Dicionário
! Operações disponíveis sobre dicionários
dict = {'Name': 'Maria', 'Age': 7, 'Class': 'First’}
dict.clear()
# Removes all elements of dictionary dict
dict.copy()
# Returns a shallow copy of dictionary dict
dict.has_key(key) # Returns true if key in dictionary dict, false otherwise
dict.items()
# Returns a list of dict's (key, value) tuple pairs
dict.keys()
# Returns list of dictionary dict's keys
dict.values()
# Returns list of dictionary dict's values
20
Dicionário
! Operações disponíveis sobre dicionários
dict = {'Name': 'Maria', 'Age': 7, 'Class': 'First’}
dict.update(dict2)# Adds dictionary dict2's key-values pairs to dict
dict.get(key1)
# For key1 key, returns value or \
default ‘None’ if key not in dictionary
dict.formKeys(seq[, value])
# Create a new dictionary with keys \
from seq and values set to value.
dict.setdefault(key1) # Similar to get(), but will
set dict[key1]=None if key is not already in dict
21
Download