我在这里有一个元组列表:
myList = [('2012-01-01', '09:00', 'San Jose', "Men's Clothing", '214.05', 'Amex'),
('2012-01-01', '09:00', 'Fort Worth', "Women's Clothing", '153.57', 'Visa'),
('2012-01-01', '09:00', 'San Diego', 'Music', '66.08', 'Cash')]
我已经用它来访问第5个元素,即项目的价格,
for x in range(len(myList)):
sales = myList[x][4]
print(sales)
我尝试通过这样做来添加价格,但它不起作用:
for x in range(len(myList)):
sales += myList[x][4]
print(sales)
错误:
UnboundLocalError: local variable 'totalSales' referenced before assignment
我的问题是:如何正确添加它们?
答案 0 :(得分:1)
您可以使用list comprehension, sum & float 获取结果的方法
myList = [('2012-01-01', '09:00', 'San Jose', "Men's Clothing", '214.05', 'Amex'),
('2012-01-01', '09:00', 'Fort Worth', "Women's Clothing", '153.57', 'Visa'),
('2012-01-01', '09:00', 'San Diego', 'Music', '66.08', 'Cash')]
print sum(float(i[4]) for i in myList)
<强>结果:
433.7
答案 1 :(得分:0)
它不起作用,因为该项目是字符串,而不是数字。您可以将其转换为浮动,它应该可以工作
sales = 0
for x in range(len(myList)):
sales += float(myList[x][4])
答案 2 :(得分:0)
您可以使用以下内置sum()
的单行解决方案:
sales = sum(float(item[4]) for item in myList)
<强>输出:
>>> sales = sum(float(item[4]) for item in myList)
>>> sales
433.7
答案 3 :(得分:0)
您需要初始化sales
变量,并在循环遍历元组列表时将每个字符串的float
值添加到其中。
myList = [('2012-01-01', '09:00', 'San Jose', "Men's Clothing", '214.05', 'Amex'),
('2012-01-01', '09:00', 'Fort Worth', "Women's Clothing", '153.57', 'Visa'),
('2012-01-01', '09:00', 'San Diego', 'Music', '66.08', 'Cash')]
sales = 0
for x in range(len(myList)):
sales += float(myList[x][4])
print(sales)
# 433.7
您可以在循环中执行range()
和len()
:
sales = 0
for tup in myList:
sales += float(tup[4])
print(sales)
# 433.7
您还可以使用生成器表达式:
print(sum(float(tup[4]) for tup in myList))
# 433.7