Dada una lista, encuentre si las frecuencias de cada elemento de valores son en sí mismos valores únicos.
Entrada : test_list = [4, 3, 2]
Salida : Falso
Explicación : Todos tienen 1 como frecuencia, por lo tanto, duplicación, por lo tanto, Falso
Entrada : test_list = [4, 3, 3, 2, 2, 2]
Salida : Verdadero
Explicación : 1 , 2, 3 son frecuencias de 4, 3, 2 respectivamente, únicas, por lo tanto verdaderas
Método n.º 1: Uso de loop + set()
La combinación de las funcionalidades anteriores proporciona una forma de fuerza bruta para resolver este problema. En esto, memorizamos la frecuencia de los elementos incrementando el índice de valor ocurrido. Luego, set() se usa para eliminar duplicados y probar si su longitud es la misma que antes de la conversión.
Python3
# Python3 code to demonstrate working of # Test for Unique Frequencies # Using loop + set() # initializing list test_list = [4, 3, 2, 2, 3, 4, 4, 4, 1, 2] # printing original list print("The original list : " + str(test_list)) # Test for Unique Frequencies res = False temp = [0] * 5 for ele in test_list: # performing memoization in temp list temp[ele] += 1 mem_list = temp[1:] # checking for set converted list length with original list if len(list(set(mem_list))) == len(mem_list): res = True # printing result print("Are element's Frequencies Unique ? : " + str(res))
The original list : [4, 3, 2, 2, 3, 4, 4, 4, 1, 2] Are element's Frequencies Unique ? : True
Método #2: Usar setdefault() + valores()
La combinación de las funciones anteriores ofrece otra forma de resolver este problema. En esto, el diccionario se usa para memorizar y la frecuencia de los elementos se registra como valores. Por último, se compara el paso similar de extracción de valores y recuento de claves de diccionario para determinar la igualdad.
Python3
# Python3 code to demonstrate working of # Test for Unique Frequencies # Using setdefault() + values() # initializing list test_list = [4, 3, 2, 2, 3, 4, 4, 4, 1, 2] # printing original list print("The original list : " + str(test_list)) # Test for Unique Frequencies # Using setdefault() + values() temp = {} for ele in test_list: # setting default value to 0 temp.setdefault(ele, 0) temp[ele] += 1 # checking for values and keys equality res = len(set(temp.values())) == len(temp) # printing result print("Are element's Frequencies Unique ? : " + str(res))
The original list : [4, 3, 2, 2, 3, 4, 4, 4, 1, 2] Are element's Frequencies Unique ? : True
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