Python: cómo imprimir una lista en el orden ingresado original después de modificarla

CorePress2024-01-25  9

Para esta práctica de laboratorio, necesito escribir un programa que primero obtenga una lista de números enteros a partir de la entrada. La entrada comienza con un número entero que indica el número de números enteros que siguen. Luego, ajuste cada número entero en la lista restando el valor más pequeño de todos los números enteros. Mi código se ejecuta y obtengo los resultados correctos, pero el código está destinado a generar los nuevos números enteros (después de restar el valor más pequeño) en el orden en que se ingresaron. Sin embargo, debido a que ordené la lista al comienzo de mi programa, los números se imprimen en orden de menor a mayor. ¿Cómo puedo hacer para que se impriman en mi declaración final en el mismo orden en que fueron ingresados? Por ejemplo, si los números ingresados ​​fueran 30, 50, 10, 70, 65, deberían generar 20, 40, 0, 60, 55. Pero mi programa generaGrámelos como 0, 20, 40, 55,60.

Este es el código que tengo hasta ahora:

x = int(input('Enter the number of integers in the data set: '))
print('Enter the', x, 'numbers: ')
list = []
for i in range(x):
    x = int(input())
    list.append(x)
    list.sort()
    
smallest = list[0]

print('The smallest value is:', smallest)
print('The normalized data set is:')
for num in list:
    print(num - smallest)

eliminar el archivo "list.sort()" declaración, entonces, use la opción "min(lista)" para obtener el valor más pequeño dentro de la lista.

- George Neto

28 de marzo de 2021 a las 1:44



------------------------------------

En lugar de ordenar la lista, puedes usar una función integrada de Python diferente, min(), que toma el número más pequeño en una lista.t. Al usar esto, no necesitarás ordenar la lista, manteniendo el orden original, y simplemente restar cada elemento de la lista por el int que obtuviste de min().



------------------------------------

Aquí está:

x = int(input('Enter the number of integers in the data set: '))
print('Enter the', x, 'numbers: ')

lst = []
for i in range(x):
    x = int(input())
    lst.append(x)

smallest = min(lst)

print('The smallest value is:', smallest)
print('The normalized data set is:')
for num in list:
    print(num - smallest)



------------------------------------

Solo haciendo pequeños cambios en tu código

x = int(input('Enter the number of integers in the data set: '))
print('Enter the', x, 'numbers: ')
# Using list comprehensive
input_list = [int(input()) for _ in range(x)]

# You can use below code if you want better readability
# for i in range(x):
#     x = int(input())
#     input_list.append(x)

# Min returns you minimum value from iterator
smallest = min(input_list)

print('The smallest value is:', smallest)
print('The normalized data set is:')
for num in input_list:
    print(num - smallest)

La salida que muestra el orden no ha cambiado

Enter the number of integers in the data set: 3
Enter the 3 numbers: 
3
2
1
The smallest value is: 1
The normalized data set is:
2
1
0

Process finished with exit code 0

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare