Eu tenho uma lista com sublistas. Quero imprimir todas as sublistas com comprimento igual a 3.
Estou fazendo o seguinte em python:
for x in values[:]:
if len(x) == 3:
print(x)
values
é a lista original. O código acima imprime todas as sub-listas com comprimento igual a 3 para cada valor de x
? Quero exibir as sublistas onde length == 3
apenas uma vez.
O problema está resolvido. O problema está no editor Eclipse. Não entendo o motivo, mas ele está exibindo apenas metade da minha lista quando executo meu loop.
Há alguma configuração que precise alterar no Eclipse?
print values
e mostrar a saída aqui? editar: ou apenas verifique se não está em branco.Respostas:
Tente isso,
x in mylist
é melhor e mais legível do quex in mylist[:]
e o seulen(x)
deve ser igual a3
.ou se você precisar de mais compreensão de listas de uso pítônico
fonte
Você também pode usar
for x in values
e nãofor x in values[:]
; o último faz uma cópia desnecessária. Além disso, é claro que o código verifica um comprimento de 2 em vez de 3 ...O código imprime apenas um item por valor de
x
- ex
está iterando sobre os elementos devalues
, que são as sublistas. Portanto, ele imprimirá cada sub-lista apenas uma vez.fonte
values
.Aqui está a solução que eu estava procurando. Se você deseja criar a Lista2 que contém a diferença dos elementos numéricos na Lista1.
Observe que while
len(list1)
é 11 (elementos),len(list2)
serão apenas 10 elementos porque estamos iniciando nosso loop for do elemento com índice 1 na lista1 e não do elemento com índice 0 na lista1fonte
Faça isso:
fonte