Python: List Comprehension

List Comprehension

List comprehensions é um recurso na liguagem Python que permite a criação de listas dinamicamente com tratamento de seus elementos em tempo de execução.

Sintases possíveis:

  1. [expr for val in collection]
  2. [expr for val in collection if (test)]
  3. [expr for val in collection if (test1) and (test2)]
  4. [expr for val1 in collection1 and val2 in collection2]

Exemplos

  1. [expr for val in collection]

    Inteiros:

    i = [ x for x in range(1,11)] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    Quadrado:

    a = [ x**2 for x in range(1,11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    [(x, x**2) for x in range(11)] [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9, 81), (10, 100)]

    Cubo:

    b = [ x**3 for x in range(1,11)] [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

    x^3 mod 3:

    c = [ x**3 % 3 for x in range(1,11)] [1, 2, 0, 1, 2, 0, 1, 2, 0, 1]

    Funções integradas I:

    from math import pi

    [str(round(pi, i)) for i in range(1, 10)] ['3.1', '3.14', '3.142', '3.1416', '3.14159', '3.141593', '3.1415927', '3.14159265', '3.141592654']

    Celsius para Fahrenheit:

    Celsius = [39.2, 36.5, 37.3, 37.8]

    Fahrenheit = [ ((float(9)/5)*x + 32) for x in Celsius ] [102.56, 97.7, 99.14, 100.03999999999999]

  2. [expr for val in collection if (test)]

    Consideremos a lista abaixo com os 100 melhores filmes segundo Holywood, de acordo com a máteria disponível em http://www.revistabula.com/3165-lista-dos-100-melhores-filmes-de-todos-os-tempos-segundo-hollywood/. Também deixei disponível em https://pastebin.com/raw/QCWYk4nx.

    Nesta lista contêm o Nome do Filme e o ano de estreia.

    Começão com a letra O:

    o = [title for (title,year) in filmes100 if title.startswith("O")] ['O Poderoso Chefão', 'O Mágico de Oz', 'O Poderoso Chefão 2', 'Os Caçadores da Arca Perdida', 'O Sol é Para Todos', 'Os Bons Companheiros', 'O Silêncio dos Inocentes', 'O Iluminado', 'O Clube da Luta', 'O Resgate do Soldado Ryan', 'Os Suspeitos', 'O Grande Lebowski', 'O Cavaleiro das Trevas', 'O Fabuloso Destino de Amelie Poulain', 'O Rei Leão', 'O Jovem Frankenstein', 'Os Caça-Fantasma', 'O Senhor dos Anéis: A Sociedade do Anel', 'O Franco Atirador', 'O Labirinto do Fauno', 'Os Sete Samurais']

    Estreiaram antes 1940:

    pos2005 = [title for (title,year) in filmes100 if year < 1940] ['O Mágico de Oz', 'E o Vento Levou']

    Estreiaram após 2005:

    pos2005 = [title for (title,year) in filmes100 if year > 2005] ['O Cavaleiro das Trevas', 'Avatar', 'Wall-E', 'Inception', 'Quem Quer Ser um Milionário', 'Up', 'O Labirinto do Fauno']

    Pares:

    pares = [n for n in range(11) if n % 2 == 0] [0, 2, 4, 6, 8, 10]

    Impares:

    pares = [n for n in range(11) if n % 2 == 1] [1, 3, 5, 7, 9]

  3. [expr for val in collection if (test1) and (test2)]

    Aqui estamos utilizando a mesma lista do exemplo 2.

    Estreiaram entre 2009 e 2010:

    k = [title for (title,year) in filmes100 if 2008 < year and year <= 2010] ['Avatar', 'Inception', 'Up']
    k = [title for (title,year) in filmes100 if 2009 <= year <= 2010] ['Avatar', 'Inception', 'Up']

    exibir nome e ano dos que estreiaram entre 2009 e 2010:

    k = [(title,year) for (title,year) in filmes100 if 2009 <= year <= 2010] [('Avatar', 2009), ('Inception', 2010), ('Up', 2009)]

  4. [expr for val1 in collection1 and val2 in collection2]

    Produto Cartesiano

    A=('a','b')

    B=('x','y')

    p = [(a, b) for a in A for b in B] [('a', 'x'), ('a', 'y'), ('b', 'x'), ('b', 'y')]

    Ou

    A=[1,2,3]

    B=[4,5,6]

    p = [(a,b) for a in A for b in B] [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

    Não primos:

    noprimes = [j for i in range(2, 8) for j in range(i*2, 50, i)] [4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 10, 15, 20, 25, 30, 35, 40, 45, 12, 18, 24, 30, 36, 42, 48, 14, 21, 28, 35, 42, 49]

    Primos:

    primes = [x for x in range(2, 50) if x not in noprimes] [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

    Transformar matriz em lista:

    matrix=[[1,2],[3,4]]

    f = [n for row in matrix for n in row] [1, 2, 3, 4]

  5. funções build-in:

    Com digitos:

    s= 'Eai 123456 pessoal'

    num = [x for x in s if x.isdigit()] ['1', '2', '3', '4', '5', '6']

    num = [x for x in range(1,11)] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    c = map(lambda n: n * 2, filter(lambda n: n%2 == 1, num))

    d = [n * 2 for n in num if n % 2 == 1]

    São equivalentes, mas a primeira utiliza funções build-in. [2, 6, 10, 14, 18]

    Ordenado a lista filmes100 pelo ano:

    ordenado = sorted(filmes100, key=lambda x: x[1]) [('E o Vento Levou', 1939), ('O Mágico de Oz', 1939), ('Cidadão Kane', 1941), ('Casablanca', 1942), ('A Felicidade não se Compra', 1946), ('A Malvada', 1950), ('Crepúsculo dos Deuses', 1950), ('Cantando na Chuva', 1952), ('Janela Indiscreta', 1954), ('Os Sete Samurais', 1954), ('Sindicato dos Ladrões', 1954), ('12 Homens e uma Sentenga', 1957), ('A Ponte do Rio Kwai', 1957), ('Um Corpo que Cai', 1958), ('Intriga Internacional', 1959), ('Quanto Mais Quente Melhor', 1959), ('Psicose', 1960), ('Amor, Sublime Amor', 1961), ('Lawrence da Arábia', 1962), ('O Sol é Para Todos', 1962), ('Dr. Fantástico', 1964), ('Mary Poppins', 1964), ('A Noviça Rebelde', 1965), ('Doutor Jivago', 1965), ('A Primeira Noite de um Homem', 1967), ('Bonnie e Clyde', 1967), ('2001: Uma Odisseia no Espaço', 1968), ('Butch Cassidy', 1969), ('Laranja Mecânica', 1971), ('O Poderoso Chefão', 1972), ('Banzé no Oeste', 1974), ('Chinatown', 1974), ('O Jovem Frankenstein', 1974), ('O Poderoso Chefão 2', 1974), ('Monty Python e o Cálice Sagrado', 1975), ('Tubarão', 1975), ('Um Estranho no Ninho', 1975), ('Rocky: O Lutador', 1976), ('Taxi Driver', 1976), ('Todos os Homens do Presidente', 1976), ('Contatos Imediatos do Terceiro Grau', 1977), ('Guerra nas Estrelas', 1977), ('Noivo Neur\xc3\xb3tico, Noiva Nervosa', 1977), ('O Franco Atirador', 1978), ('Alien', 1979), ('Apocalypse Now', 1979), ('Apertem os Cintos\xe2\x80\xa6 O Piloto Sumiu', 1980), ('O Iluminado', 1980), ('Star Wars: Epis\xc3\xb3dio V O Império Contra-Ataca', 1980), ('Touro Indomável', 1980), ('Os Caçadores da Arca Perdida', 1981), ('Blade Runner O Caçador de Androides', 1982), ('E.T.', 1982), ('Amadeus', 1984), ('Os Caça-Fantasma', 1984), ('Clube dos Cinco', 1985), ('De Volta Para o Futuro', 1985), ('Curtindo a Vida Adoidado', 1986), ('A Princesa Prometida', 1987), ('Duro de Matar', 1988), ('Harry & Sally Feitos um Para o Outro', 1989), ('Os Bons Companheiros', 1990), ('A Bela e a Fera', 1991), ('O Silêncio dos Inocentes', 1991), ('Thelma & Louise', 1991), ('Cães de Aluguel', 1992), ('A Lista de Schindler', 1993), ('Feitiço do Tempo', 1993), ('Jurassic Park', 1993), ('Forrest Gump', 1994), ('O Rei Leão', 1994), ('Pulp Fiction', 1994), ('Um Sonho de Liberdade', 1994), ('Coração Selvagem', 1995), ('Os Suspeitos', 1995), ('Seven', 1995), ('Toy Story', 1995), ('Fargo', 1996), ('Gênio Indomável', 1997), ('Titanic', 1997), ('O Grande Lebowski', 1998), ('O Resgate do Soldado Ryan', 1998), ('Beleza Americana', 1999), ('Matrix', 1999), ('O Clube da Luta', 1999), ('Amnésia', 2000), ('Gladiador', 2000), ('Quase Famosos', 2000), ('O Fabuloso Destino de Amelie Poulain', 2001), ('O Senhor dos Anéis: A Sociedade do Anel', 2001), ('The Lord of the Rings: The Return of the King', 2003), ('Brilho Eterno de Uma Mente Sem Lembranças', 2004), ('Brokeback Mountain', 2005), ('O Labirinto do Fauno', 2006), ('O Cavaleiro das Trevas', 2008), ('Quem Quer Ser um Milionário', 2008), ('Wall-E', 2008), ('Avatar', 2009), ('Up', 2009), ('Inception', 2010)]

    Caixa alta:

    t=[x.upper() for (x,y) in filmes100] ['O PODEROSO CHEF\xc3\xa3O', 'O M\xc3\xa1GICO DE OZ', 'CIDAD\xc3\xa3O KANE', 'UM SONHO DE LIBERDADE', 'PULP FICTION', 'CASABLANCA', 'O PODEROSO CHEF\xc3\xa3O 2', 'E.T.', '2001: UMA ODISSEIA NO ESPA\xc3\xa7O', 'A LISTA DE SCHINDLER', 'GUERRA NAS ESTRELAS', 'DE VOLTA PARA O FUTURO', 'OS CA\xc3\xa7ADORES DA ARCA PERDIDA', 'FORREST GUMP', 'E O VENTO LEVOU', 'O SOL \xc3\xa9 PARA TODOS', 'APOCALYPSE NOW', 'NOIVO NEUR\xc3\xb3TICO, NOIVA NERVOSA', 'OS BONS COMPANHEIROS', 'A FELICIDADE N\xc3\xa3O SE COMPRA', 'CHINATOWN', 'O SIL\xc3\xaaNCIO DOS INOCENTES', 'LAWRENCE DA AR\xc3\xa1BIA', 'TUBAR\xc3\xa3O', 'A NOVI\xc3\xa7A REBELDE', 'CANTANDO NA CHUVA', 'CLUBE DOS CINCO', 'A PRIMEIRA NOITE DE UM HOMEM', 'BLADE RUNNER O CA\xc3\xa7ADOR DE ANDROIDES', 'UM ESTRANHO NO NINHO', 'A PRINCESA PROMETIDA', 'STAR WARS: EPIS\xc3\xb3DIO V O IMP\xc3\xa9RIO CONTRA-ATACA', 'FARGO', 'BELEZA AMERICANA', 'LARANJA MEC\xc3\xa2NICA', 'CURTINDO A VIDA ADOIDADO', 'DR. FANT\xc3\xa1STICO', 'HARRY & SALLY FEITOS UM PARA O OUTRO', 'O ILUMINADO', 'O CLUBE DA LUTA', 'PSICOSE', 'ALIEN', 'TOY STORY', 'MATRIX', 'TITANIC', 'O RESGATE DO SOLDADO RYAN', 'QUANTO MAIS QUENTE MELHOR', 'OS SUSPEITOS', 'JANELA INDISCRETA', 'JURASSIC PARK', 'O GRANDE LEBOWSKI', 'A MALVADA', 'G\xc3\xaaNIO INDOM\xc3\xa1VEL', 'BUTCH CASSIDY', 'TAXI DRIVER', 'BRILHO ETERNO DE UMA MENTE SEM LEMBRAN\xc3\xa7AS', 'O CAVALEIRO DAS TREVAS', 'CREP\xc3\xbaSCULO DOS DEUSES', 'THELMA & LOUISE', 'O FABULOSO DESTINO DE AMELIE POULAIN', 'AMOR, SUBLIME AMOR', 'INTRIGA INTERNACIONAL', 'FEITI\xc3\xa7O DO TEMPO', 'MARY POPPINS', 'TOURO INDOM\xc3\xa1VEL', 'O REI LE\xc3\xa3O', 'AVATAR', 'MONTY PYTHON E O C\xc3\xa1LICE SAGRADO', 'GLADIADOR', 'UM CORPO QUE CAI', 'QUASE FAMOSOS', 'O JOVEM FRANKENSTEIN', 'TODOS OS HOMENS DO PRESIDENTE', 'BANZ\xc3\xa9 NO OESTE', 'A PONTE DO RIO KWAI', 'BROKEBACK MOUNTAIN', 'OS CA\xc3\xa7A-FANTASMA', '12 HOMENS E UMA SENTEN\xc3\xa7A', 'WALL-E', 'SINDICATO DOS LADR\xc3\xb5ES', 'AMADEUS', 'O SENHOR DOS AN\xc3\xa9IS: A SOCIEDADE DO ANEL', 'DURO DE MATAR', 'INCEPTION', 'SEVEN', 'A BELA E A FERA', 'THE LORD OF THE RINGS: THE RETURN OF THE KING', 'QUEM QUER SER UM MILION\xc3\xa1RIO', 'CORA\xc3\xa7\xc3\xa3O SELVAGEM', 'AMN\xc3\xa9SIA', 'ROCKY: O LUTADOR', 'UP', 'CONTATOS IMEDIATOS DO TERCEIRO GRAU', 'O FRANCO ATIRADOR', 'DOUTOR JIVAGO', 'O LABIRINTO DO FAUNO', 'APERTEM OS CINTOS\xe2\x80\xa6 O PILOTO SUMIU', 'C\xc3\xa3ES DE ALUGUEL', 'BONNIE E CLYDE', 'OS SETE SAMURAIS']

    Caixa baixa:

    tl=[x.lower() for (x,y) in filmes100] ['o poderoso chef\xc3\xa3o', 'o m\xc3\xa1gico de oz', 'cidad\xc3\xa3o kane', 'um sonho de liberdade', 'pulp fiction', 'casablanca', 'o poderoso chef\xc3\xa3o 2', 'e.t.', '2001: uma odisseia no espa\xc3\xa7o', 'a lista de schindler', 'guerra nas estrelas', 'de volta para o futuro', 'os ca\xc3\xa7adores da arca perdida', 'forrest gump', 'e o vento levou', 'o sol \xc3\xa9 para todos', 'apocalypse now', 'noivo neur\xc3\xb3tico, noiva nervosa', 'os bons companheiros', 'a felicidade n\xc3\xa3o se compra', 'chinatown', 'o sil\xc3\xaancio dos inocentes', 'lawrence da ar\xc3\xa1bia', 'tubar\xc3\xa3o', 'a novi\xc3\xa7a rebelde', 'cantando na chuva', 'clube dos cinco', 'a primeira noite de um homem', 'blade runner o ca\xc3\xa7ador de androides', 'um estranho no ninho', 'a princesa prometida', 'star wars: epis\xc3\xb3dio v o imp\xc3\xa9rio contra-ataca', 'fargo', 'beleza americana', 'laranja mec\xc3\xa2nica', 'curtindo a vida adoidado', 'dr. fant\xc3\xa1stico', 'harry & sally feitos um para o outro', 'o iluminado', 'o clube da luta', 'psicose', 'alien', 'toy story', 'matrix', 'titanic', 'o resgate do soldado ryan', 'quanto mais quente melhor', 'os suspeitos', 'janela indiscreta', 'jurassic park', 'o grande lebowski', 'a malvada', 'g\xc3\xaanio indom\xc3\xa1vel', 'butch cassidy', 'taxi driver', 'brilho eterno de uma mente sem lembran\xc3\xa7as', 'o cavaleiro das trevas', 'crep\xc3\xbasculo dos deuses', 'thelma & louise', 'o fabuloso destino de amelie poulain', 'amor, sublime amor', 'intriga internacional', 'feiti\xc3\xa7o do tempo', 'mary poppins', 'touro indom\xc3\xa1vel', 'o rei le\xc3\xa3o', 'avatar', 'monty python e o c\xc3\xa1lice sagrado', 'gladiador', 'um corpo que cai', 'quase famosos', 'o jovem frankenstein', 'todos os homens do presidente', 'banz\xc3\xa9 no oeste', 'a ponte do rio kwai', 'brokeback mountain', 'os ca\xc3\xa7a-fantasma', '12 homens e uma senten\xc3\xa7a', 'wall-e', 'sindicato dos ladr\xc3\xb5es', 'amadeus', 'o senhor dos an\xc3\xa9is: a sociedade do anel', 'duro de matar', 'inception', 'seven', 'a bela e a fera', 'the lord of the rings: the return of the king', 'quem quer ser um milion\xc3\xa1rio', 'cora\xc3\xa7\xc3\xa3o selvagem', 'amn\xc3\xa9sia', 'rocky: o lutador', 'up', 'contatos imediatos do terceiro grau', 'o franco atirador', 'doutor jivago', 'o labirinto do fauno', 'apertem os cintos\xe2\x80\xa6 o piloto sumiu', 'c\xc3\xa3es de aluguel', 'bonnie e clyde', 'os sete samurais']

    Quantia de letra em cada palavra:

    la = ' '.join([x.lower() for (x,y) in filmes100]) 'o poderoso chef\xc3\xa3o o m\xc3\xa1gico de oz cidad\xc3\xa3o kane um sonho de liberdade pulp fiction casablanca o poderoso chef\xc3\xa3o 2 e.t. 2001: uma odisseia no espa\xc3\xa7o a lista de schindler guerra nas estrelas de volta para o futuro os ca\xc3\xa7adores da arca perdida forrest gump e o vento levou o sol \xc3\xa9 para todos apocalypse now noivo neur\xc3\xb3tico, noiva nervosa os bons companheiros a felicidade n\xc3\xa3o se compra chinatown o sil\xc3\xaancio dos inocentes lawrence da ar\xc3\xa1bia tubar\xc3\xa3o a novi\xc3\xa7a rebelde cantando na chuva clube dos cinco a primeira noite de um homem blade runner o ca\xc3\xa7ador de androides um estranho no ninho a princesa prometida star wars: epis\xc3\xb3dio v o imp\xc3\xa9rio contra-ataca fargo beleza americana laranja mec\xc3\xa2nica curtindo a vida adoidado dr. fant\xc3\xa1stico harry & sally feitos um para o outro o iluminado o clube da luta psicose alien toy story matrix titanic o resgate do soldado ryan quanto mais quente melhor os suspeitos janela indiscreta jurassic park o grande lebowski a malvada g\xc3\xaanio indom\xc3\xa1vel butch cassidy taxi driver brilho eterno de uma mente sem lembran\xc3\xa7as o cavaleiro das trevas crep\xc3\xbasculo dos deuses thelma & louise o fabuloso destino de amelie poulain amor, sublime amor intriga internacional feiti\xc3\xa7o do tempo mary poppins touro indom\xc3\xa1vel o rei le\xc3\xa3o avatar monty python e o c\xc3\xa1lice sagrado gladiador um corpo que cai quase famosos o jovem frankenstein todos os homens do presidente banz\xc3\xa9 no oeste a ponte do rio kwai brokeback mountain os ca\xc3\xa7a-fantasma 12 homens e uma senten\xc3\xa7a wall-e sindicato dos ladr\xc3\xb5es amadeus o senhor dos an\xc3\xa9is: a sociedade do anel duro de matar inception seven a bela e a fera the lord of the rings: the return of the king quem quer ser um milion\xc3\xa1rio cora\xc3\xa7\xc3\xa3o selvagem amn\xc3\xa9sia rocky: o lutador up contatos imediatos do terceiro grau o franco atirador doutor jivago o labirinto do fauno apertem os cintos\xe2\x80\xa6 o piloto sumiu c\xc3\xa3es de aluguel bonnie e clyde os sete samurais'

    stuff = map(lambda w: [w.upper(), w.lower(), len(w)], la.split() [['O', 'o', 1], ['PODEROSO', 'poderoso', 8], ['CHEF\xc3\xa3O', 'chef\xc3\xa3o', 7], ['O', 'o', 1], ['M\xc3\xa1GICO', 'm\xc3\xa1gico', 7], ['DE', 'de', 2], ['OZ', 'oz', 2], ['CIDAD\xc3\xa3O', 'cidad\xc3\xa3o', 8], ['KANE', 'kane', 4], ['UM', 'um', 2], ['SONHO', 'sonho', 5], ['DE', 'de', 2], ['LIBERDADE', 'liberdade', 9], ['PULP', 'pulp', 4], ['FICTION', 'fiction', 7], ['CASABLANCA', 'casablanca', 10], ['O', 'o', 1], ['PODEROSO', 'poderoso', 8], ['CHEF\xc3\xa3O', 'chef\xc3\xa3o', 7], ['2', '2', 1], ['E.T.', 'e.t.', 4], ['2001:', '2001:', 5], ['UMA', 'uma', 3], ['ODISSEIA', 'odisseia', 8], ['NO', 'no', 2], ['ESPA\xc3\xa7O', 'espa\xc3\xa7o', 7], ['A', 'a', 1], ['LISTA', 'lista', 5], ['DE', 'de', 2], ['SCHINDLER', 'schindler', 9], ['GUERRA', 'guerra', 6], ['NAS', 'nas', 3], ['ESTRELAS', 'estrelas', 8], ['DE', 'de', 2], ['VOLTA', 'volta', 5], ['PARA', 'para', 4], ['O', 'o', 1], ['FUTURO', 'futuro', 6], ['OS', 'os', 2], ['CA\xc3\xa7ADORES', 'ca\xc3\xa7adores', 10], ['DA', 'da', 2], ['ARCA', 'arca', 4], ['PERDIDA', 'perdida', 7], ['FORREST', 'forrest', 7], ['GUMP', 'gump', 4], ['E', 'e', 1], ['O', 'o', 1], ['VENTO', 'vento', 5], ['LEVOU', 'levou', 5], ['O', 'o', 1], ['SOL', 'sol', 3], ['\xc3\xa9', '\xc3\xa9', 2], ['PARA', 'para', 4], ['TODOS', 'todos', 5], ['APOCALYPSE', 'apocalypse', 10], ['NOW', 'now', 3], ['NOIVO', 'noivo', 5], ['NEUR\xc3\xb3TICO,', 'neur\xc3\xb3tico,', 11], ['NOIVA', 'noiva', 5], ['NERVOSA', 'nervosa', 7], ['OS', 'os', 2], ['BONS', 'bons', 4], ['COMPANHEIROS', 'companheiros', 12], ['A', 'a', 1], ['FELICIDADE', 'felicidade', 10], ['N\xc3\xa3O', 'n\xc3\xa3o', 4], ['SE', 'se', 2], ['COMPRA', 'compra', 6], ['CHINATOWN', 'chinatown', 9], ['O', 'o', 1], ['SIL\xc3\xaaNCIO', 'sil\xc3\xaancio', 9], ['DOS', 'dos', 3], ['INOCENTES', 'inocentes', 9], ['LAWRENCE', 'lawrence', 8], ['DA', 'da', 2], ['AR\xc3\xa1BIA', 'ar\xc3\xa1bia', 7], ['TUBAR\xc3\xa3O', 'tubar\xc3\xa3o', 8], ['A', 'a', 1], ['NOVI\xc3\xa7A', 'novi\xc3\xa7a', 7], ['REBELDE', 'rebelde', 7], ['CANTANDO', 'cantando', 8], ['NA', 'na', 2], ['CHUVA', 'chuva', 5], ['CLUBE', 'clube', 5], ['DOS', 'dos', 3], ['CINCO', 'cinco', 5], ['A', 'a', 1], ['PRIMEIRA', 'primeira', 8], ['NOITE', 'noite', 5], ['DE', 'de', 2], ['UM', 'um', 2], ['HOMEM', 'homem', 5], ['BLADE', 'blade', 5], ['RUNNER', 'runner', 6], ['O', 'o', 1], ['CA\xc3\xa7ADOR', 'ca\xc3\xa7ador', 8], ['DE', 'de', 2], ['ANDROIDES', 'androides', 9], ['UM', 'um', 2], ['ESTRANHO', 'estranho', 8], ['NO', 'no', 2], ['NINHO', 'ninho', 5], ['A', 'a', 1], ['PRINCESA', 'princesa', 8], ['PROMETIDA', 'prometida', 9], ['STAR', 'star', 4], ['WARS:', 'wars:', 5], ['EPIS\xc3\xb3DIO', 'epis\xc3\xb3dio', 9], ['V', 'v', 1], ['O', 'o', 1], ['IMP\xc3\xa9RIO', 'imp\xc3\xa9rio', 8], ['CONTRA-ATACA', 'contra-ataca', 12], ['FARGO', 'fargo', 5], ['BELEZA', 'beleza', 6], ['AMERICANA', 'americana', 9], ['LARANJA', 'laranja', 7], ['MEC\xc3\xa2NICA', 'mec\xc3\xa2nica', 9], ['CURTINDO', 'curtindo', 8], ['A', 'a', 1], ['VIDA', 'vida', 4], ['ADOIDADO', 'adoidado', 8], ['DR.', 'dr.', 3], ['FANT\xc3\xa1STICO', 'fant\xc3\xa1stico', 11], ['HARRY', 'harry', 5], ['&', '&', 1], ['SALLY', 'sally', 5], ['FEITOS', 'feitos', 6], ['UM', 'um', 2], ['PARA', 'para', 4], ['O', 'o', 1], ['OUTRO', 'outro', 5], ['O', 'o', 1], ['ILUMINADO', 'iluminado', 9], ['O', 'o', 1], ['CLUBE', 'clube', 5], ['DA', 'da', 2], ['LUTA', 'luta', 4], ['PSICOSE', 'psicose', 7], ['ALIEN', 'alien', 5], ['TOY', 'toy', 3], ['STORY', 'story', 5], ['MATRIX', 'matrix', 6], ['TITANIC', 'titanic', 7], ['O', 'o', 1], ['RESGATE', 'resgate', 7], ['DO', 'do', 2], ['SOLDADO', 'soldado', 7], ['RYAN', 'ryan', 4], ['QUANTO', 'quanto', 6], ['MAIS', 'mais', 4], ['QUENTE', 'quente', 6], ['MELHOR', 'melhor', 6], ['OS', 'os', 2], ['SUSPEITOS', 'suspeitos', 9], ['JANELA', 'janela', 6], ['INDISCRETA', 'indiscreta', 10], ['JURASSIC', 'jurassic', 8], ['PARK', 'park', 4], ['O', 'o', 1], ['GRANDE', 'grande', 6], ['LEBOWSKI', 'lebowski', 8], ['A', 'a', 1], ['MALVADA', 'malvada', 7], ['G\xc3\xaaNIO', 'g\xc3\xaanio', 6], ['INDOM\xc3\xa1VEL', 'indom\xc3\xa1vel', 10], ['BUTCH', 'butch', 5], ['CASSIDY', 'cassidy', 7], ['TAXI', 'taxi', 4], ['DRIVER', 'driver', 6], ['BRILHO', 'brilho', 6], ['ETERNO', 'eterno', 6], ['DE', 'de', 2], ['UMA', 'uma', 3], ['MENTE', 'mente', 5], ['SEM', 'sem', 3], ['LEMBRAN\xc3\xa7AS', 'lembran\xc3\xa7as', 11], ['O', 'o', 1], ['CAVALEIRO', 'cavaleiro', 9], ['DAS', 'das', 3], ['TREVAS', 'trevas', 6], ['CREP\xc3\xbaSCULO', 'crep\xc3\xbasculo', 11], ['DOS', 'dos', 3], ['DEUSES', 'deuses', 6], ['THELMA', 'thelma', 6], ['&', '&', 1], ['LOUISE', 'louise', 6], ['O', 'o', 1], ['FABULOSO', 'fabuloso', 8], ['DESTINO', 'destino', 7], ['DE', 'de', 2], ['AMELIE', 'amelie', 6], ['POULAIN', 'poulain', 7], ['AMOR,', 'amor,', 5], ['SUBLIME', 'sublime', 7], ['AMOR', 'amor', 4], ['INTRIGA', 'intriga', 7], ['INTERNACIONAL', 'internacional', 13], ['FEITI\xc3\xa7O', 'feiti\xc3\xa7o', 8], ['DO', 'do', 2], ['TEMPO', 'tempo', 5], ['MARY', 'mary', 4], ['POPPINS', 'poppins', 7], ['TOURO', 'touro', 5], ['INDOM\xc3\xa1VEL', 'indom\xc3\xa1vel', 10], ['O', 'o', 1], ['REI', 'rei', 3], ['LE\xc3\xa3O', 'le\xc3\xa3o', 5], ['AVATAR', 'avatar', 6], ['MONTY', 'monty', 5], ['PYTHON', 'python', 6], ['E', 'e', 1], ['O', 'o', 1], ['C\xc3\xa1LICE', 'c\xc3\xa1lice', 7], ['SAGRADO', 'sagrado', 7], ['GLADIADOR', 'gladiador', 9], ['UM', 'um', 2], ['CORPO', 'corpo', 5], ['QUE', 'que', 3], ['CAI', 'cai', 3], ['QUASE', 'quase', 5], ['FAMOSOS', 'famosos', 7], ['O', 'o', 1], ['JOVEM', 'jovem', 5], ['FRANKENSTEIN', 'frankenstein', 12], ['TODOS', 'todos', 5], ['OS', 'os', 2], ['HOMENS', 'homens', 6], ['DO', 'do', 2], ['PRESIDENTE', 'presidente', 10], ['BANZ\xc3\xa9', 'banz\xc3\xa9', 6], ['NO', 'no', 2], ['OESTE', 'oeste', 5], ['A', 'a', 1], ['PONTE', 'ponte', 5], ['DO', 'do', 2], ['RIO', 'rio', 3], ['KWAI', 'kwai', 4], ['BROKEBACK', 'brokeback', 9], ['MOUNTAIN', 'mountain', 8], ['OS', 'os', 2], ['CA\xc3\xa7A-FANTASMA', 'ca\xc3\xa7a-fantasma', 14], ['12', '12', 2], ['HOMENS', 'homens', 6], ['E', 'e', 1], ['UMA', 'uma', 3], ['SENTEN\xc3\xa7A', 'senten\xc3\xa7a', 9], ['WALL-E', 'wall-e', 6], ['SINDICATO', 'sindicato', 9], ['DOS', 'dos', 3], ['LADR\xc3\xb5ES', 'ladr\xc3\xb5es', 8], ['AMADEUS', 'amadeus', 7], ['O', 'o', 1], ['SENHOR', 'senhor', 6], ['DOS', 'dos', 3], ['AN\xc3\xa9IS:', 'an\xc3\xa9is:', 7], ['A', 'a', 1], ['SOCIEDADE', 'sociedade', 9], ['DO', 'do', 2], ['ANEL', 'anel', 4], ['DURO', 'duro', 4], ['DE', 'de', 2], ['MATAR', 'matar', 5], ['INCEPTION', 'inception', 9], ['SEVEN', 'seven', 5], ['A', 'a', 1], ['BELA', 'bela', 4], ['E', 'e', 1], ['A', 'a', 1], ['FERA', 'fera', 4], ['THE', 'the', 3], ['LORD', 'lord', 4], ['OF', 'of', 2], ['THE', 'the', 3], ['RINGS:', 'rings:', 6], ['THE', 'the', 3], ['RETURN', 'return', 6], ['OF', 'of', 2], ['THE', 'the', 3], ['KING', 'king', 4], ['QUEM', 'quem', 4], ['QUER', 'quer', 4], ['SER', 'ser', 3], ['UM', 'um', 2], ['MILION\xc3\xa1RIO', 'milion\xc3\xa1rio', 11], ['CORA\xc3\xa7\xc3\xa3O', 'cora\xc3\xa7\xc3\xa3o', 9], ['SELVAGEM', 'selvagem', 8], ['AMN\xc3\xa9SIA', 'amn\xc3\xa9sia', 8], ['ROCKY:', 'rocky:', 6], ['O', 'o', 1], ['LUTADOR', 'lutador', 7], ['UP', 'up', 2], ['CONTATOS', 'contatos', 8], ['IMEDIATOS', 'imediatos', 9], ['DO', 'do', 2], ['TERCEIRO', 'terceiro', 8], ['GRAU', 'grau', 4], ['O', 'o', 1], ['FRANCO', 'franco', 6], ['ATIRADOR', 'atirador', 8], ['DOUTOR', 'doutor', 6], ['JIVAGO', 'jivago', 6], ['O', 'o', 1], ['LABIRINTO', 'labirinto', 9], ['DO', 'do', 2], ['FAUNO', 'fauno', 5], ['APERTEM', 'apertem', 7], ['OS', 'os', 2], ['CINTOS\xe2\x80\xa6', 'cintos\xe2\x80\xa6', 9], ['O', 'o', 1], ['PILOTO', 'piloto', 6], ['SUMIU', 'sumiu', 5], ['C\xc3\xa3ES', 'c\xc3\xa3es', 5], ['DE', 'de', 2], ['ALUGUEL', 'aluguel', 7], ['BONNIE', 'bonnie', 6], ['E', 'e', 1], ['CLYDE', 'clyde', 5], ['OS', 'os', 2], ['SETE', 'sete', 4], ['SAMURAIS', 'samurais', 8]]

    Tabuada de soma:

    [(str(i) + " + " + str(j),i+j) for i in range(1,11) for j in range(1,11)] [('1 + 1', 2), ('1 + 2', 3), ('1 + 3', 4), ('1 + 4', 5), ('1 + 5', 6), ('1 + 6', 7), ('1 + 7', 8), ('1 + 8', 9), ('1 + 9', 10), ('1 + 10', 11), ('2 + 1', 3), ('2 + 2', 4), ('2 + 3', 5), ('2 + 4', 6), ('2 + 5', 7), ('2 + 6', 8), ('2 + 7', 9), ('2 + 8', 10), ('2 + 9', 11), ('2 + 10', 12), ('3 + 1', 4), ('3 + 2', 5), ('3 + 3', 6), ('3 + 4', 7), ('3 + 5', 8), ('3 + 6', 9), ('3 + 7', 10), ('3 + 8', 11), ('3 + 9', 12), ('3 + 10', 13), ('4 + 1', 5), ('4 + 2', 6), ('4 + 3', 7), ('4 + 4', 8), ('4 + 5', 9), ('4 + 6', 10), ('4 + 7', 11), ('4 + 8', 12), ('4 + 9', 13), ('4 + 10', 14), ('5 + 1', 6), ('5 + 2', 7), ('5 + 3', 8), ('5 + 4', 9), ('5 + 5', 10), ('5 + 6', 11), ('5 + 7', 12), ('5 + 8', 13), ('5 + 9', 14), ('5 + 10', 15), ('6 + 1', 7), ('6 + 2', 8), ('6 + 3', 9), ('6 + 4', 10), ('6 + 5', 11), ('6 + 6', 12), ('6 + 7', 13), ('6 + 8', 14), ('6 + 9', 15), ('6 + 10', 16), ('7 + 1', 8), ('7 + 2', 9), ('7 + 3', 10), ('7 + 4', 11), ('7 + 5', 12), ('7 + 6', 13), ('7 + 7', 14), ('7 + 8', 15), ('7 + 9', 16), ('7 + 10', 17), ('8 + 1', 9), ('8 + 2', 10), ('8 + 3', 11), ('8 + 4', 12), ('8 + 5', 13), ('8 + 6', 14), ('8 + 7', 15), ('8 + 8', 16), ('8 + 9', 17), ('8 + 10', 18), ('9 + 1', 10), ('9 + 2', 11), ('9 + 3', 12), ('9 + 4', 13), ('9 + 5', 14), ('9 + 6', 15), ('9 + 7', 16), ('9 + 8', 17), ('9 + 9', 18), ('9 + 10', 19), ('10 + 1', 11), ('10 + 2', 12), ('10 + 3', 13), ('10 + 4', 14), ('10 + 5', 15), ('10 + 6', 16), ('10 + 7', 17), ('10 + 8', 18), ('10 + 9', 19), ('10 + 10', 20)]

    Tabuada de multiplicação:

    [(str(i) + " * " + str(j),i*j) for i in range(1,11) for j in range(1,11)] [('1 * 1', 1), ('1 * 2', 2), ('1 * 3', 3), ('1 * 4', 4), ('1 * 5', 5), ('1 * 6', 6), ('1 * 7', 7), ('1 * 8', 8), ('1 * 9', 9), ('1 * 10', 10), ('2 * 1', 2), ('2 * 2', 4), ('2 * 3', 6), ('2 * 4', 8), ('2 * 5', 10), ('2 * 6', 12), ('2 * 7', 14), ('2 * 8', 16), ('2 * 9', 18), ('2 * 10', 20), ('3 * 1', 3), ('3 * 2', 6), ('3 * 3', 9), ('3 * 4', 12), ('3 * 5', 15), ('3 * 6', 18), ('3 * 7', 21), ('3 * 8', 24), ('3 * 9', 27), ('3 * 10', 30), ('4 * 1', 4), ('4 * 2', 8), ('4 * 3', 12), ('4 * 4', 16), ('4 * 5', 20), ('4 * 6', 24), ('4 * 7', 28), ('4 * 8', 32), ('4 * 9', 36), ('4 * 10', 40), ('5 * 1', 5), ('5 * 2', 10), ('5 * 3', 15), ('5 * 4', 20), ('5 * 5', 25), ('5 * 6', 30), ('5 * 7', 35), ('5 * 8', 40), ('5 * 9', 45), ('5 * 10', 50), ('6 * 1', 6), ('6 * 2', 12), ('6 * 3', 18), ('6 * 4', 24), ('6 * 5', 30), ('6 * 6', 36), ('6 * 7', 42), ('6 * 8', 48), ('6 * 9', 54), ('6 * 10', 60), ('7 * 1', 7), ('7 * 2', 14), ('7 * 3', 21), ('7 * 4', 28), ('7 * 5', 35), ('7 * 6', 42), ('7 * 7', 49), ('7 * 8', 56), ('7 * 9', 63), ('7 * 10', 70), ('8 * 1', 8), ('8 * 2', 16), ('8 * 3', 24), ('8 * 4', 32), ('8 * 5', 40), ('8 * 6', 48), ('8 * 7', 56), ('8 * 8', 64), ('8 * 9', 72), ('8 * 10', 80), ('9 * 1', 9), ('9 * 2', 18), ('9 * 3', 27), ('9 * 4', 36), ('9 * 5', 45), ('9 * 6', 54), ('9 * 7', 63), ('9 * 8', 72), ('9 * 9', 81), ('9 * 10', 90), ('10 * 1', 10), ('10 * 2', 20), ('10 * 3', 30), ('10 * 4', 40), ('10 * 5', 50), ('10 * 6', 60), ('10 * 7', 70), ('10 * 8', 80), ('10 * 9', 90), ('10 * 10', 100)]

Referências

https://www.youtube.com/watch?v=AhSvKGTh28Q

https://docs.python.org/2/tutorial/datastructures.html

http://www.secnetix.de/olli/Python/list_comprehensions.hawk

http://treyhunner.com/2015/12/python-list-comprehensions-now-in-color/

http://www.pythonforbeginners.com/basics/list-comprehensions-in-python

http://www.python-course.eu/list_comprehension.php

Comentários