I'm trying to make a program that a. Takes several numbers from the user, separated by spaces, b. Removes any positive number (greater than -1), and c. Prints out those numbers from largest to smallest (-1 -2 -3 -20 -60).
It appears that whenever the for loop to determine if the number in the list is greater than -1 (and thus should be deleted), the program picks (seemingly) random numbers to remove. I'm bad with lists (indices, what's callable, subscriptable, etc). Everything else seems to be running fine, save for this for loop. What should I do?
numbers = input("Let's sort a list of numbers. Give me a list of numbers, each separated by a space: ").split()
new_list = list(map(int,numbers))
for x in new_list:
if x >= 0:
new_list.pop
new_list.sort()
new_list.reverse()
def list_to_string(list):
string = ""
for x in list:
string += str(x) + " "
return string
print(list_to_string(new_list))
Input 1: 62 19 4 3 18 5 7
Output 1: 19 5 3
What I want for Output 1: nothing
Input 2: -18 4 -1 -39 -5 92 37 42
Output 2: 37 -1 -5 -18 -39
What I want for Output 2: -1 -5 -18 -39
source https://stackoverflow.com/questions/75736578/python-removing-negative-items-in-a-list-in-a-nested-for-loop
Comments
Post a Comment