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"] 
print("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)) 
print("The list after shifting K's to end : " + str(res)) 
Resultado :
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"] 
print("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)] 
print("The list after shifting K's to end : " + str(res)) 
Resultado :
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]