Составление списка понимания, начинающий - PullRequest
0 голосов
/ 28 января 2011

Я новичок в Python и пытаюсь понять списочные выражения, чтобы я мог использовать его в своем коде.

pricelist = {"jacket":15, "pants":10, "cap":5, "baseball":3, "gum":1}

products_sold = []

while True:
    product_name = input("what is the name of the product")
    product = {}
    customer_name = input("what is the name of the customer")
    #customer is shopping
    product[sell_price] = pricelist[product_name]
    product["quantity"] = input("how many items were sold?")
    #append the product to a dict

    products_sold.append(product)

Теперь я хочу получить общее представление о транзакции, которая должна выглядеть следующим образом:

transaction = {"customer_name":"name",
               "sold":{"jacket":3, "pants":2},
               "bought":{"cap":4, "baseball":2, "gum":"10"}}

как бы я создал dict и назначил ему ключи и значения с пониманием списка?Я посмотрел на примеры и понимаю их, но не могу понять, как применить их к своему коду.

Я намерен превратить свой список продуктов в список диктов (транзакция)которые содержат ту же информацию по-другому.

1 Ответ

2 голосов
/ 29 января 2011

Я отвечу, что я думаю, что ваша настоящая проблема заключается в том, что вы хотите понять понимание списка.IMO, пример, который вы разместили, чтобы попытаться понять списки, не является хорошим примером.Вот очень тривиальный пример, который мне нравится использовать, поскольку должно быть легко связать это с тем, что вы уже знаете из другого языка.

# start with a list of numbers
numbers = [1, 2, 3, 4, 5]   

# create an empty list to hold the new numbers
numbers_times_two = []

# iterate over the list and append the new list the number times two
for number in numbers:
    numbers_times_two.append(number * 2)

Надеемся, что приведенный выше код имеет смысл и знаком вам.Вот то же самое, используя списки.Обратите внимание, что здесь есть все те же части, только немного перемещенные.

numbers_times_two = [number * 2 for number in numbers]

В списочных значениях используются квадратные скобки, как в списке, и он создает новый список из итерации по итерируемой (похожей на список)в данном примере это числа.

Итак, вы можете видеть, что когда вы задали вопрос об использовании списочного восприятия для заполнения слова, это действительно не имеет смысла в контексте изучения механизмов понимания списков..

Надеюсь, это поможет.

...