Как получить специфические данные из словаря в Python - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть словарь

product_list = {'Name': ['Milk, 2 Litres', 'Bread', 'Sugar', 'Apple'], 'Price': ['2.0', '3.5', '3.0', '4.5'], 'weight': ['2', '0.6', '2.8', '4.2']} <br/>
Now the Question is <br/>
class Weightcheck:<br/>
    def bag_products(product_list):<br/>
       bag_list = []<br/>
        non_bag_items = []<br/>
        MAX_BAG_WEIGHT = 5.0<br/>

        for product in product_list:
            if product.weight > MAX_BAG_WEIGHT:
                product_list.remove(product)
                non_bag_items.append(product)

Всякий раз, когда я передаю аргумент функции как,

demo = Weightcheck()
demo.bag_products(product_list)

Я получаю эту ошибку:

TypeError: bag_products () принимает 1 позиционный аргумент, но 2 даны

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Использование списка словарей должно быть лучше

product_list = [
    {'Name': 'Milk, 2 Litres', 'Price': '2.0', 'weight': '2',},
    {'Name': 'Bread', 'Price': '3.5', 'weight': '0.6'}
]


class Weightcheck:
    def bag_products(self, product_list):
        non_bag_items = []
        MAX_BAG_WEIGHT = 5.0

        for product in product_list:
            if float(product['weight']) > MAX_BAG_WEIGHT:
                product_list.remove(product)
                non_bag_items.append(product)
0 голосов
/ 27 апреля 2018

Вы пропустили добавление self в bag_products.

заменить

def bag_products(product_list):

с

def bag_products(self, product_list):

Редактировать в соответствии с комментариями

product_list = {'Name': ['Milk, 2 Litres', 'Bread', 'Sugar', 'Apple'], 'Price': ['2.0', '3.5', '3.0', '4.5'], 'weight': ['2', '0.6', '2.8', '4.2']}

class Weightcheck:
    def bag_products(self, product_list):
        bag_list = []
        non_bag_items = []
        MAX_BAG_WEIGHT = 5.0

        for w in product_list['weight']:
            if float(w) > MAX_BAG_WEIGHT:
                bag_list.append(w)
                non_bag_items.append(w)
        print(bag_list)
        print(non_bag_items)

demo = Weightcheck()
demo.bag_products(product_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...