Python – Construir lista de calificaciones

Dado un número, construya una lista que tenga todas las combinaciones de Grados posibles para los primeros N caracteres. 
 

Entrada : num = 3 
Salida : [‘A+’, ‘A’, ‘A-‘, ‘B+’, ‘B’, ‘B-‘, ‘C+’, ‘C’, ‘C-‘] 
Explicación : Todo grados hasta C prestados en la lista.
Entrada : num = 5 
Salida : [‘A+’, ‘A’, ‘A-‘, ‘B+’, ‘B’, ‘B-‘, ‘C+’, ‘C’, ‘C-‘, ‘D+’ , ‘D’, ‘D-‘, ‘E+’, ‘E’, ‘E-‘] 
Explicación : 5 corresponde a E, por lo tanto todas las combinaciones. 
 

Método n.º 1: usar la comprensión de listas + ord() 
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de incrementar y extraer caracteres ascii usando ord() y la comprensión de listas se usa en la creación de listas de caracteres.
 

Python3

# Python3 code to demonstrate working of
# Construct Grades List
# Using list comprehension + ord()
 
# initializing N
num = 4
 
# Using list comprehension + ord()
# each character paired to symbols and character incremented using idx
# conversion by chr + ord
res =  [chr(ord('A') + idx) + sym for idx in range(num)
       for sym in ['+', '', '-']]      
 
# printing result
print("Grades List : " + str(res))
Producción : 

Grades List : ['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-']

 

 
Método #2: Usar join() + map() + product() + ascii_uppercase 
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de extraer caracteres ascii usando ascii_uppercase, product() y map(), se utiliza para realizar la vinculación con símbolos, el resultado se crea después de realizar la unión de todos.
 

Python3

# Python3 code to demonstrate working of
# Construct Grades List
# Using join() + map() + product() + ascii_uppercase
from string import ascii_uppercase
from itertools import product
 
# initializing N
num = 4
 
# Using join() + map() + product() + ascii_uppercase
# pairing using product, map used to join characters with symbols.
res = [*map(''.join, product(ascii_uppercase[:num], ['+', '', '-']))]
 
# printing result
print("Grades List : " + str(res))
Producción : 

Grades List : ['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-']

 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *