很抱歉,如果已经有人问过这个问题。在这种情况下,我希望获得一个链接。
我正在尝试将一个列表中的项目添加到另一列表中的项目,如果它们在列表中具有相似的项目。
注意:这是编程课程的入门。我没有接受过任何非常高级的教育(例如,我从未使用过熊猫)。
我已经Google搜索了几天。不幸的是,我的课本课不足以完成这项任务。如果我只需要添加列表中的所有项,或者仅基于列表中的索引从每个列表中添加一项,那我会很高兴。 事实并非如此。
提供了一个已经定义了主模块的shell程序。其中的一部分导入了CSV文件。文件的每一行都作为列表中的列表导入。每个列表中有3个项目。
Examples:
[
[Monday,4.95,Beverages]
[Monday,12.95,Food]
[Tuesday,4.95,Beverages]
[Wednesday,4.95,Beverages]
[Thursday,31,Food]
[Friday,45,Food]
[Saturday,23,Food]
[Saturday,12.5,Entertainment]
[Friday,25,Entertainment]
]
这就是所提供的。
def summarize_by_weekday(expense_list):
"""
Requirement 3 to display the total amount of money spent on each
weekday, aggregated per day.
That is, display “Monday: $35”, “Tuesday: $54”, etc., where $35 is the
sum of dollar amounts for all Mondays present in the data file,
$54 is the sum of dollar amounts for all Tuesdays present in the
data file, and so on.
:param expense_list:
:return: None
"""
我已经尝试了很多,并在进行时将其丢弃。所以,我不能说
我尝试过的一切。
但是,自从重新开始以来,我已经学到了很多:
def summarize_by_weekday(expense_list):
print ("Summary by weekday:")
totAmt == 0
for item in expense_data:
day = item[0]
amount = float(item[1])
category = item[2]
for line in expense_list:
if day == "Monday":
totAmt += amount
print ("Monday: $",totAmt)
我的错误
UnboundLocalError:赋值之前引用了本地变量'totAmt'
我也尝试过:
for item in expense_data:
day = item[0]
amount = float(item[1])
category = item[2]
totAmt == 0
for line in expense_list:
if day == "Sunday":
totAmt = map(lambda x: x + x, amount)
print ("Sunday: $",totAmt)
elif day == "Monday":
totAmt = sum(float(amount))
print ("Monday: $",totAmt)
我的错误
UnboundLocalError:赋值之前引用了本地变量'totAmt'
结果应打印如下。
Summary by weekday:
Sunday: $DDD.CC
Monday: $DDD.CC
Tuesday: $DDD.CC
Wednesday: $DDD.CC
Thursday: $DDD.CC
Friday: $DDD.CC
Saturday: $DDD.CC
(其中$ DDD.CC =美元和美分的总额。)
如果可以将$ DDD.CC设置为合理
我真的不需要为我写下全部内容。我不希望有人替我做作业。
诸如“您的代码是错误的。请尝试使用它”之类的东西,其中“ this”是尽可能少的代码,可以帮助我。
谢谢。
答案 0 :(得分:0)
如果要为变量赋值,请使用'=','=='用于比较
def summarize_by_weekday(expense_list):
print ("Summary by weekday:")
totAmt = 0
for item in expense_list:
day = item[0]
amount = float(item[1])
category = item[2]
if day == "Monday":
totAmt += amount
print ("Monday: $",totAmt)
elif day == 'Tuesday':
totAmt += amount
print ("Tuesday: $",totAmt)
elif day == 'Wednesday':
totAmt += amount
print ("Wednesday: $",totAmt)
elif day == 'Thursday':
totAmt += amount
print ("Thursday: $",totAmt)
elif day == 'Friday':
totAmt += amount
print ("Friday: $",totAmt)
elif day == 'Saturday':
totAmt += amount
print ("Saturday: $",totAmt)
else:
totAmt += amount
print ("Sunday: $",totAmt)
答案 1 :(得分:0)
summary = {}
for day, money, category in expense_list:
if day in summary:
summary[day] = summary[day] + float(money)
else:
summary[day] = float(money)
for day in summary:
summary[day] = "$" + str(summary[day])
print(day + ": " + summary[day])
这将为您提供所需的答案。
答案 2 :(得分:0)
所以,我找到了答案。 既然你们都很乐于提供帮助,我想分享一下: 请注意,这还不是答案。我添加了一些基本的print()行以对其进行一些基本的改进。
print ("\n---------------------")
print (" Summary by weekday")
print ("---------------------")
for weekday in ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']:
this_day_total = 0.0
for expense_item in expense_list:
if expense_item[0] == weekday:
this_day_total += float(expense_item[1])
print("%-9s: $%7.2f" % (weekday, this_day_total))
print ("---------------------")
感谢大家的帮助!