Python 如何将元组的元素一起添加到列表中?
我这里有一个元组列表:Python 如何将元组的元素一起添加到列表中?,python,tuples,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', '
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')]
我用这个来访问第五个元素,即物品的价格
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
我的问题是:如何正确地将它们相加?它不起作用,因为该项是字符串,而不是数字。您可以将其转换为float,它应该可以工作
sales = 0
for x in range(len(myList)):
sales += float(myList[x][4])
您可以使用,&方法获得结果
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
您可以使用以下内置的单线解决方案: 输出:
>>> sales = sum(float(item[4]) for item in myList)
>>> sales
433.7
您需要初始化
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
“不起作用”是什么意思?我得到的错误是UnboundLocalError:分配前引用的局部变量“totalSales”
@code>您需要给计数器一个初始值:sales=0
print(sum(float(tup[4]) for tup in myList))
# 433.7