List1.py

376 palavras 2 páginas
#!/usr/bin/python -tt
# Copyright 2010 Google Inc.
# Licensed under the Apache License, Version 2.0
# http://www.apache.org/licenses/LICENSE-2.0

# Google's Python Class
# http://code.google.com/edu/languages/google-python-class/

# A. fim_igual
# Dada uma lista de strings, retorna o número de strings
# com tamanho >= 2 onde o primeiro e o último caracteres são iguais
# Exemplo: ['aba', 'xyz', 'aa', 'x', 'bbb'] retorna 3 def fim_igual(words): cont=0 for c in words: if len(c)>=2 and c[0]==c[-1]: cont+=1 return cont

# B. x_antes
# Dada uma lista de strings retorna uma lista onde
# todos os elementos que começam com x ficam sorteados antes
# Ex.: ['mix', 'xyz', 'apple', 'xanadu', 'aardvark'] retorna
# ['xanadu', 'xyz', 'aardvark', 'apple', 'mix']
# Dica: monte duas listas separadas e junte-as no final def x_antes(words): return sorted([c for c in words if c[0]=='x'])+sorted([c for c in words if c[0]!='x'])

def last(a): #esta def serve para a letra C return a[-1]

# C. sort_last
# Dada uma lista de tuplas não vazias retorna uma tupla ordenada
# por ordem crescente do último elemento
# Exemplo [(1, 7), (1, 3), (3, 4, 5), (2, 2)] retorna
# [(2, 2), (1, 3), (3, 4, 5), (1, 7)]
# Dica: use key=função que você definiu e que retorna o último elemento def sort_last(tuples): return sorted(tuples, key=last)

def test(obtido, esperado): if obtido == esperado: prefixo = ' Parabéns!' else: prefixo = ' Ainda não' print ('%s obtido: %s esperado: %s' % (prefixo, repr(obtido), repr(esperado)))

def main(): print ('fim_igual') test(fim_igual(['aba', 'xyz', 'aa', 'x', 'bbb']), 3) test(fim_igual(['', 'x', 'xy', 'xyx', 'xx']), 2) test(fim_igual(['aaa', 'be', 'abc', 'hello']), 1)

print () print ('x_antes') test(x_antes(['bbb', 'ccc', 'axx', 'xzz', 'xaa']), ['xaa', 'xzz', 'axx', 'bbb', 'ccc']) test(x_antes(['ccc', 'bbb', 'aaa', 'xcc', 'xaa']), ['xaa', 'xcc', 'aaa',

Relacionados

  • Introdução à Python (slides)
    7015 palavras | 29 páginas
  • Qualquer
    26010 palavras | 105 páginas
  • Python
    26033 palavras | 105 páginas
  • Estrutura de dados - livro do shaffer
    121958 palavras | 488 páginas
  • Eletronico
    129172 palavras | 517 páginas