Мои извинения, если это уже где-то спрашивали.В этом случае, я был бы признателен за ссылку.
Я пытаюсь добавить элементы из одного списка в элементы в другом списке, если у них есть аналогичный элемент в списке.
Примечание. Это вводный курс по программированию.Я не обучен чему-то очень продвинутому (например, я никогда не пользовался пандой).
Я гуглил несколько дней.Мой учебник класса, к сожалению, не подходит для этой задачи.Если бы мне просто нужно было добавить все элементы в списке или один элемент из каждого списка, основанный ТОЛЬКО на его индексе в списке, я был бы золотым.Это не тот случай, хотя.
Мне предоставили программу оболочки, которая уже определила основной модуль.Часть этого импортировала файл 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 можно оставить выровненным
Не знаюдействительно нужно все это выписать для меня.Я не хочу, чтобы кто-то делал за меня домашнее задание.
Что-то вроде «Ваш код неверен. Попробуйте использовать это», где «это» - как можно меньше кода, чтобы помочь мне в пути.
Заранее спасибо.