如何在列表中一起添加元组元素?

时间:2018-01-19 15:37:26

标签: python tuples

我在这里有一个元组列表:

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

我的问题是:如何正确添加它们?

4 个答案:

答案 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
相关问题