Python - Deslocamento traseiro K na lista
O problema convencional envolvendo as mudanças de elemento foi discutido muitas vezes antes, mas às vezes temos restrições estritas para executá-los e o conhecimento de qualquer variação possível ajuda. Este artigo fala sobre um desses problemas de deslocamento de K no final da lista. O problema é que ele verifica apenas K excluindo os valores convencionais 'Nenhum' (Falso). Vamos discutir algumas maneiras pelas quais isso pode ser feito.
Método # 1: Usando a compreensão de lista +isinstance()
Neste método, realizamos a operação de deslocamento em 2 etapas. Na primeira etapa, obtemos todos os valores que precisamos para obter na frente e no final apenas empurramos os Ks para o final. O método isinstance é usado para filtrar a entidade Boolean False.
test_list
=
[
1
,
4
,
None
,
"Manjeet"
,
False
,
4
,
False
,
4
,
"Nikhil"
]
(
"The original list : "
+
str
(test_list))
K
=
4
temp
=
[ele
for
ele
in
test_list
if
ele !
=
K
and
ele
or
ele
is
None
or
isinstance
(ele,
bool
) ]
res
=
temp
+
[K]
*
(
len
(test_list)
-
len
(temp))
(
"The list after shifting K's to end : "
+
str
(res))
A lista original: [1, 4, Nenhum, 'Manjeet', False, 4, False, 4, 'Nikhil'] A lista depois de deslocar K para o final: [1, Nenhum, 'Manjeet', False, False, 'Nikhil', 4, 4, 4]
Método # 2: Usando a compreensão da lista + isinstance()
+ divisão da lista
Este método é semelhante ao método acima, a única modificação é que para reduzir o número de etapas, a divisão da lista é usada para anexar os K para realizar a tarefa inteira em apenas 1 etapa.
test_list
=
[
1
,
4
,
None
,
"Manjeet"
,
False
,
4
,
False
,
4
,
"Nikhil"
]
(
"The original list : "
+
str
(test_list))
K
=
4
res
=
([ele
for
ele
in
test_list
if
ele !
=
K
and
ele
or
not
isinstance
(ele,
int
)
or
isinstance
(ele,
bool
)]
+
[K]
*
len
(test_list))[:
len
(test_list)]
(
"The list after shifting K's to end : "
+
str
(res))
A lista original: [1, 4, Nenhum, 'Manjeet', False, 4, False, 4, 'Nikhil'] A lista depois de deslocar K para o final: [1, Nenhum, 'Manjeet', False, False, 'Nikhil', 4, 4, 4]
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva