El problema convencional relacionado con los cambios de elementos se ha discutido muchas veces antes, pero a veces tenemos restricciones estrictas para realizarlos y el conocimiento de cualquier posible variación ayuda. Este artículo habla sobre uno de esos problemas de cambio de K al comienzo de la lista, el problema aquí es que verifica solo K excluyendo los valores convencionales ‘Ninguno’ (Falso). Analicemos ciertas formas en que esto se puede realizar.
Método #1: Usando la comprensión de listas +isinstance()
En este método, realizamos la operación de desplazamiento en 2 pasos. En el primer paso, obtenemos todos los valores que necesitamos al frente y, al final, simplemente empujamos las K al frente. El método isinstance se usa para filtrar la entidad Boolean False.
# Python3 code to demonstrate # Move all K element to List Start # using list comprehension + isinstance() # initializing list test_list = [1, 4, None, "Manjeet", False, 4, False, 4, "Nikhil"] # printing original list print("The original list : " + str(test_list)) # initializing K K = 4 # using list comprehension + isinstance() # Move all K element to List Start temp = [ele for ele in test_list if ele != K and ele or ele is None or isinstance(ele, bool) ] res = [K] * (len(test_list) - len(temp)) + temp # print result print("The list after shifting K's to start : " + str(res))
The original list : [1, 4, None, 'Manjeet', False, 4, False, 4, 'Nikhil'] The list after shifting K's to start : [4, 4, 4, 1, None, 'Manjeet', False, False, 'Nikhil']
Método n.º 2: Uso de la comprensión de listas + isinstance()
+ segmentación de listas
Este método es similar al método anterior, la única modificación es que para reducir el número de pasos, la segmentación de listas se usa para adjuntar las K para realizar la tarea completa en solo 1 paso.
# Python3 code to demonstrate # Move all K element to List Start # using list comprehension + isinstance() + list slicing # initializing list test_list = [1, 4, None, "Manjeet", False, 4, False, 4, "Nikhil"] # printing original list print("The original list : " + str(test_list)) # initializing K K = 4 # using list comprehension + isinstance() + list slicing # Move all K element to List Start res = ([K] * len(test_list) + [ele for ele in test_list if ele != K and ele or not isinstance(ele, int) or isinstance(ele, bool)])[len([ele for ele in test_list if ele != K and ele or not isinstance(ele, int) or isinstance(ele, bool)]):] # print result print("The list after shifting K's to end : " + str(res))
The original list : [1, 4, None, 'Manjeet', False, 4, False, 4, 'Nikhil'] The list after shifting K's to start : [4, 4, 4, 1, None, 'Manjeet', False, False, 'Nikhil']
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA