Home > Software engineering >  Subtract specific value from a list (of numbers) by user input
Subtract specific value from a list (of numbers) by user input

Time:07-23

I'm a begginer in Python and i'm trying to do a program when the user chooses a number from a list, then after you type by how you much want to reduce this chosed number and then print the list.

I know that using list[specific index], check if matches with user input and repeating over and over again would do the job, but would be so unoptimized (if there's a way to do this in a single line would be fine), I want to do something that automatically finds the the number of the list by the user input.

Desired Output:

[5, 10, 15, 20]
what number you want from the list?
> 15
by how much you want to subtract?
> 6
>> [5, 10, 9, 20]

my code:

list = [5, 10, 15, 20]
print(list)
number = int(input("what's the number you want from the list?"))

if number in list:
    print("by how much you want to subtract?")
    remove = int(input())
    list[number] = list[number] - remove
    print("Done It!")

else:
    print("not a valid number")

print(list)

CodePudding user response:

You cannot access the number from list using itself. You must access it using its index. In order to get the correct index, use list.index(number).

Now, do not shadow list by creating a variable of that name. If you need a variable to represent a list, call it something else such as numList. If you shadow (aka assign a new value to overwrite a variable which is already in use), you will not be able to use the list's constructor later on inside your application.

numList = [5, 10, 15, 20]
print(numList)
number = int(input("what's the number you want from the numList?"))

if number in numList:
    print("by how much you want to subtract?")
    remove = int(input())
    index = numList.index(number)
    numList[index] = numList[index] - remove
    print("Done It!")

else:
    print("not a valid number")

print(numList)

CodePudding user response:

list = [5, 10, 15, 20]

print(list)

number = int(input("what's the number you want from the list?"))

for i in list:
    if i == number:
        usr_input = int(input("How much to subtract? "))
        index = list.index(i)
        list[index] = i - usr_input
        print("Done")
        print(list)

i know it is not one line but i hope this helps

  • Related