#python #list #count
#python #Список #количество
Вопрос:
Вот мой код. Мой вопрос касается последних двух print
утверждений.
topping = ['pepperoni', 'pineapple', 'cheese', 'sausage', 'olives', 'anchovies',
'mushrooms']
prices = [2,6,1,3,2,7,2]
num_pizzas = len(topping)
pizzas = list(zip(prices, topping))
# this makes is sort by price from least to greatest
pizzas.sort()
# this prints the cheapest which is the first in the list
cheapest_pizza = pizzas[0]
# this prints the last thing in the list
priciest_pizza = pizzas[-1]
# this prints the first 3 options
three_cheapest = pizzas[:3]
num_two_dollar_slices = prices.count(2)
#this prints 3 $2 prices
print(num_two_dollar_slices)
# Why does this print 0? I would think that it should print 3 as well
num_of_two = pizzas.count(2)
print(num_of_two)
Комментарии:
1.
2
не является элементомpizzas
.count
не учитывает элементы элементов.2.
pizzas
это список кортежей из 2 элементов. Количество2
s в этом списке равно нулю, потому что в списке вообще нет целых чисел.
Ответ №1:
Посмотрите на pizzas
список, после zip и сортировки он выглядит следующим образом:
[(1, 'cheese'), (2, ' mushrooms'), (2, 'olives'), (2, 'pepperoni'), (3, 'sausage'), (6, 'pineapple'), (7, 'anchovies')]
Каждый объект является кортежем, и вы пытаетесь посчитать целое число.
Вместо этого вы можете посчитать prices
список, поскольку он является исходным, или вы можете написать простой цикл, который будет считать число 2:
counter = 0
for price, topping in pizzas:
if price == 2:
counter = 1
print(counter)
Или, конечно, поместите его в функцию для общего решения.
Комментарии:
1. Спасибо! теперь это имеет смысл! Все еще изучаю python. Def помогает
2. @svlad4560 Я рад, что это помогло 🙂 Убедитесь, что вы отметили его как правильный ответ для людей с подобными проблемами в будущем.