Eu gosto da sintaxe de compreensão da lista Python. Também pode ser usado para criar dicionários? Por exemplo, iterando sobre pares de chaves e valores: mydict = {(k,v) for (k,v) in blah blah blah} # doesn't
Uma construção sintática que fornece uma maneira concisa de criar listas em um estilo semelhante à notação matemática do construtor de conjuntos. Uma vez que várias linguagens suportam compreensões de lista, use esta tag em conjunto com a tag de uma linguagem de programação.
Eu gosto da sintaxe de compreensão da lista Python. Também pode ser usado para criar dicionários? Por exemplo, iterando sobre pares de chaves e valores: mydict = {(k,v) for (k,v) in blah blah blah} # doesn't
Como posso fazer o seguinte em Python? row = [unicode(x.strip()) for x in row if x is not None else ''] Essencialmente: substitua todos os Nones por cadeias vazias e depois realizar uma
Existe um motivo para preferir usar o map()excesso de compreensão da lista ou vice-versa? Um deles é geralmente mais eficiente ou considerado geralmente mais pitônico que o
Quero criar uma série de listas, com comprimentos variados. Cada lista conterá o mesmo elemento e, repetidas nvezes (onde n= comprimento da lista). Como crio as listas, sem usar uma compreensão de lista [e for number in xrange(n)]para cada
Quando você deve usar expressões geradoras e quando deve usar a compreensão de lista no Python? # Generator expression (x*2 for x in range(256)) # List comprehension [x*2 for x in
É possível criar uma compreensão de dicionário em Python (para as chaves)? Sem compreensão de lista, você pode usar algo como isto: l = [] for n in range(1, 11): l.append(n) Nós podemos encurtar este a uma compreensão da lista: l = [n for n in range(1, 11)]. No entanto, digamos que desejo...
Como todos sabemos, há compreensão de lista, como [i for i in [1, 2, 3, 4]] e há compreensão de dicionário, como {i:j for i, j in {1: 'a', 2: 'b'}.items()} mas (i for i in (1, 2, 3)) terminará em um gerador, não em uma tuplecompreensão. Por que é que? Meu palpite é que a tupleé imutável, mas...
Eu tenho uma lista de comprimento variável e estou tentando encontrar uma maneira de testar se o item da lista que está sendo avaliado atualmente é a string mais longa contida na lista. E eu estou usando o Python 2.6.1 Por exemplo: mylist = ['abc','abcdef','abcd'] for each in mylist: if...
No Python, você pode ter vários iteradores em uma compreensão de lista, como [(x,y) for x in a for y in b] para algumas sequências adequadas a e b. Estou ciente da semântica de loop aninhado das compreensões de lista do Python. Minha pergunta é: um iterador na compreensão pode se referir ao...
Eu tenho esta lista aninhada: l = [['40', '20', '10', '30'], ['20', '20', '20', '20', '20', '30', '20'], ['30', '20', '30', '50', '10', '30', '20', '20', '20'], ['100', '100'], ['100', '100', '100', '100', '100'], ['100', '100', '100', '100']] Agora, o que eu quero fazer é converter cada elemento...
Tendo um iteratorobjeto, existe algo mais rápido, melhor ou mais correto do que uma compreensão de lista para obter uma lista dos objetos retornados pelo iterador? user_list = [user for user in
É mais sobre sintaxe de compreensão da lista python. Eu tenho uma compreensão de lista que produz lista de números ímpares de um determinado intervalo: [x for x in range(1, 10) if x % 2] Isso cria um filtro - eu tenho uma lista de fontes, onde removo números pares ( if x % 2). Eu gostaria de usar...
Como você acessa outras variáveis de classe a partir de uma compreensão de lista na definição de classe? O seguinte funciona no Python 2, mas falha no Python 3: class Foo: x = 5 y = [x for i in range(1)] O Python 3.2 fornece o erro: NameError: global name 'x' is not defined Tentar...
Em termos de desempenho em Python, é uma lista-compreensão, ou funções gosto map(), filter()e reduce()mais rápido do que um loop for? Por que, tecnicamente, eles são executados na velocidade C , enquanto o loop for é executado na velocidade da máquina virtual python ? Suponha que em um jogo que...
Estou tentando criar um dicionário a partir de um arquivo csv. A primeira coluna do arquivo csv contém chaves exclusivas e a segunda coluna contém valores. Cada linha do arquivo csv representa um par exclusivo de chave e valor no dicionário. Tentei usar as classes csv.DictReadere csv.DictWriter,...
Vamos supor que eu tenha uma lista como esta: mylist = ["a","b","c","d"] Para obter os valores impressos junto com seu índice, posso usar a enumeratefunção do Python assim >>> for i,j in enumerate(mylist): ... print i,j ... 0 a 1 b 2 c 3 d >>> Agora, quando eu tento usá-lo...
Eu tenho uma compreensão de lista em Python em que cada iteração pode lançar uma exceção. Por exemplo , se eu tenho: eggs = (1,3,0,3,2) [1/egg for egg in eggs] Vou obter uma ZeroDivisionErrorexceção no terceiro elemento. Como posso lidar com essa exceção e continuar a execução da compreensão...
As compreensões estão tendo algumas interações inesperadas com o escopo. Este é o comportamento esperado? Eu tenho um método: def leave_room(self, uid): u = self.user_by_id(uid) r = self.rooms[u.rid] other_uids = [ouid for ouid in r.users_by_id.keys() if ouid != u.uid] other_us =...
Gostaria de saber se existe uma maneira melhor de imprimir todos os objetos em uma lista Python do que esta: myList = [Person("Foo"), Person("Bar")] print("\n".join(map(str, myList))) Foo Bar Eu li que assim não é muito bom: myList = [Person("Foo"), Person("Bar")] for p in myList: print(p) Não...
Pense em uma função que estou chamando por seus efeitos colaterais, não por valores de retorno (como imprimir na tela, atualizar a GUI, imprimir em um arquivo etc.). def fun_with_side_effects(x): ...side effects... return y Agora, é Pythônico usar compreensões de lista para chamar esta...