2023-03-18

Python removing negative items in a list in a nested for loop

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



No comments:

Post a Comment