Como verificar uma condição em uma lista (ou matriz) e, em seguida, classificar os elementos com base nessa condição em Python

Olá

Eu tenho uma lista de números complexos com n elementos, quero verificar quantos dos elementos são reais (a parte imaginária é zero) e, em seguida, classificar minha lista de forma que comece com os números reais.

Por exemplo, para a lista abaixo:

a = [ 7 + 0j, -2 + 3j, -2 - 3j, 5 + 6j, 5 - 6j, -1+ 0j, -8 + 4j, -8 - 4j]

dois elementos são reais (primeiro elemento e sexto elemento) Eu quero saber se tenho 2 elementos reais na minha lista e, em seguida, quero ter uma espécie como abaixo que começa com números reais e os outros elementos permanecem inalterados:

b = [ 7 + 0j, -1+ 0j, -2 + 3j, -2 - 3j, 5 + 6j, 5 - 6j, -8 + 4j, -8 - 4j]

Como eu posso fazer isso? obrigado

hashru

Você pode classificar os números comparando sua parte imaginária com zero. Aqueles com 0s virão primeiro, os números restantes não serão alterados em sua ordem.

a = sorted(a, key=lambda x:x.imag!=0)
print(a)

Saídas

[(7+0j), (-1+0j), (-2+3j), (-2-3j), (5+6j), (5-6j), (-8+4j), (-8-4j)]

Para obter o número de tais entradas, use

sum(x.imag == 0 for x in a)

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

TOP lista

quentelabel

Arquivo