Повторение словаря списков с использованием цикла » для » для возврата цены

#python #python-3.x

#питон #python-3.x

Вопрос:

У меня возникли проблемы с добавлением списка для добавления правильных значений, он не возвращает кредиты.. он также не возвращает ничего, когда я пытаюсь распечатать список…Я знаю, что делаю что-то не так, но не знаю точно, что именно.

Вот инструкции…

Создайте новый пустой список под названием inexpensive_loans . Используйте цикл for для выбора каждого кредита из списка кредитов. a. Внутри цикла for напишите инструкцию if, чтобы определить, является ли цена кредита меньше или равна 500 b. Если цена кредита меньше или равна 500, добавьте этот кредит в inexpensive_loans список. Распечатайте список недорогих кредитов.

 loans = [ {  "loan_price": 700,  "remaining_months": 9,  "repayment_interval": "monthly",  "future_value": 1000, }, {  "loan_price": 500,  "remaining_months": 13,  "repayment_interval": "bullet",  "future_value": 1000, }, {  "loan_price": 200,  "remaining_months": 16,  "repayment_interval": "bullet",  "future_value": 1000, }, {  "loan_price": 900,  "remaining_months": 16,  "repayment_interval": "bullet",  "future_value": 1000, }, ]  inexpensive_loans = []  for loan_price in loans:   if (loan_price['loan_price']) lt;= 500:   inexpensive_loans.append(loan_price[inexpensive_loans])  print(inexpensive_loans)   header = ["loan_price", "remaining_months", "repayment_interval", "future_value"]  output_path = Path("inexpensive_loans12345.csv")    print("writing csv file...") csvpath = Path("inexpensive_loans12345.csv") with open(csvpath, 'w', newline='') as csvfile: csvwriter = csv.writer(csvfile)  csvwriter.writerow(header)  for row in loans:  csvwriter.writerow(row.values())  

Комментарии:

1. Измените это inexpensive_loans.append(loan_price[inexpensive_loans]) на inexpensive_loans.append(loan_price)

2. понял: спасибо…просто нужно, чтобы этот список был переведен в csv-файл: редактировать, я думаю, что понял…. просто измените предпоследнюю строку «для строки в кредитах:» на «для строки в inexpensive_loans:

Ответ №1:

Чтобы использовать цикл for для создания inexpensive_loans списка, вот как его лучше написать:

 inexpensive_loans = []  for loan in loans:   if loan['loan_price'] lt;= 500:  inexpensive_loans.append(loan['loan_price']) print(inexpensive_loans)  

В качестве альтернативы я предлагаю вам переписать цикл for в понятный список для лучшей читабельности:

 inexpensive_loans = [loan['loan_price'] for loan in loans if loan['loan_price'] lt;= 500]  

В любом случае вы должны получить [500, 200] результат.