Python Forum
Adding items in a list (using loops?)
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Adding items in a list (using loops?)
#1
Hi,

Sorry if this is a dumb question, but I am only a week into coding. I have a list that is comprised of integers. I would like to add these all together, but I can't seem to do it correctly.

broken_prices = [5, 3, 4, 5, 4] + [4]

def sum_list(broken_pieces):
    sum = 0
    for x in broken_pieces:
        sum += x
    return sum
Basically, I am trying to write code that will return the total of the numbers in the list, which would be 25.

Thanks in advance
Reply
#2
Your function is working but you need to call it with your list to get a result.
And beware not to name a variable "sum" as this is an inbuild python function
actually the one that does what you rebuild.

def sum_list(elements):
    total = 0
    for element in elements:
        total += element
    return total

broken_prices = [5, 3, 4, 5, 4] + [4]

print(sum_list(broken_prices))

# ==> 25

print(sum(broken_prices))
Reply
#3
There is built-in function sum:

>>> sum([5, 3, 4, 5, 4])                                                                   
21
>>> sum([5, 3, 4, 5, 4] + [4])                                                             
25
And I concur with ThomasL - don't use built-in function names.
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#4
(Nov-21-2019, 11:46 AM)Seneca260 Wrote: broken_prices = [5, 3, 4, 5, 4] + [4]

def sum_list(broken_pieces):
    sum = 0
    for x in broken_pieces:
        sum += x
    return sum
Basically, I am trying to write code that will return the total of the numbers in the list, which would be 25.

Hi!

You have to be very careful with the words and punctuation signs in Python (I guess in all programming languages). So your list named broken_prices is NOT the same as your broken_pieces.

As others have said, you cannot use special words in python as names for variables. These special words appear in a different colour (like print, def, for, sum). You could use nevertheless sum1 instead of sum for the name of a variable (the colour will change as soon as you add the 1 to the name).

I have tried to follow your original program, making some necessary adjustments to show you clearly what is happening:
broken_prices = [5, 3, 4, 5, 4] + [4]
print(f"This is the list: {broken_prices}.")
def sum_list(list1):
    sum1 = 0
    for x in list1:
        sum1 += x
    print(f"The total sum of the elements of the list is {sum1}.")

sum_list(broken_prices)
and now it produces the following output:
Output:
This is the list: [5, 3, 4, 5, 4, 4]. The total sum of the elements of the list is 25. >>>
All the best,
newbieAuggie2019

"That's been one of my mantras - focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains."
Steve Jobs
Reply
#5
This is under 'General Coding Help' so one should focus on 'best practices' not to obscure ways to achieve desired result Wall

Things would be different if we had this thread under 'Homework'..... Wink
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#6
In addition to @perfingo's comment - OP wants their function to return, not print the result
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#7
(Nov-21-2019, 12:08 PM)ThomasL Wrote: Your function is working but you need to call it with your list to get a result.
And beware not to name a variable "sum" as this is an inbuild python function
actually the one that does what you rebuild.

def sum_list(elements):
    total = 0
    for element in elements:
        total += element
    return total

broken_prices = [5, 3, 4, 5, 4] + [4]

print(sum_list(broken_prices))

# ==> 25

print(sum(broken_prices))

Thank you ThomasL and Auggie. This is exactly what I was trying to do! I find the element aspect of things a bit confusing, so I appreciate the help.

Thanks to everyone else who gave input. Sorry if I misplaced this. I wasn't sure if this should go in 'Homework' since this wasn't really homework, but rather something I was just trying to do on my own with code I used elsewhere.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to parse and group hierarchical list items from an unindented string in Python? ann23fr 0 95 Mar-27-2024, 01:16 PM
Last Post: ann23fr
  for loops break when I call the list I'm looping through Radical 4 826 Sep-18-2023, 07:52 AM
Last Post: buran
  Why do I have to repeat items in list slices in order to make this work? Pythonica 7 1,259 May-22-2023, 10:39 PM
Last Post: ICanIBB
  Finding combinations of list of items (30 or so) LynnS 1 838 Jan-25-2023, 02:57 PM
Last Post: deanhystad
  Adding values with reduce() function from the list of tuples kinimod 10 2,518 Jan-24-2023, 08:22 AM
Last Post: perfringo
  For Word, Count in List (Counts.Items()) new_coder_231013 6 2,500 Jul-21-2022, 02:51 PM
Last Post: new_coder_231013
  How to get list of exactly 10 items? Mark17 1 2,406 May-26-2022, 01:37 PM
Last Post: Mark17
  how to assign items from a list to a dictionary CompleteNewb 3 1,535 Mar-19-2022, 01:25 AM
Last Post: deanhystad
  Reading list items without brackets and quotes jesse68 6 4,524 Jan-14-2022, 07:07 PM
Last Post: jesse68
Question How to gather specific second-level items from a list chatguy 2 1,517 Dec-17-2021, 05:05 PM
Last Post: chatguy

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020