Я изучаю python и пытаюсь использовать некоторые тернарные операторы.Python - петля внутри тернарного оператора
Я пытаюсь сделать функцию ниже с использованием трехкомпонентной:
def array_count9(nums):
count = 0
for i in nums:
if i == 9:
count += 1
return count
Я пробовал:
def array_count9(nums):
count = 0
count += 1 if i == 9 for i in nums else pass
return count
который бросил SyntaxError
, то после поисков я нашел this и изменил код за то, что я считал лучшим заказом:
def array_count9(nums):
count = 0
count += 1 if i == 9 else pass for i in nums
return count
По-прежнему принимает SyntaxError
, который указывает на for
. Я также пытался использовать круглые скобки в разных местах.
Я посмотрел вокруг и есть и другие родственные темы, такие как this и this, что привело меня попробовать это:
def array_count9(nums):
count = 0
count += 1 if i == 9 else count == count for i in nums
return count
Я также пробовал другие ресурсы, с помощью поиска Google, но я не могу вполне работает. Пожалуйста, научите меня.
Благодаря
Привет, это работает, однако я до сих пор не понимаю, почему то, что я использовал, не работает. Вы можете объяснить? –
@ JakeStokes Я не уверен, как объяснить ... Я думаю, что все ваши попытки были просто синтаксическими ошибками? Понимание списков в Python приводит к итератору значений ...нет ничего похожего на то, что вы пытались сделать. – smarx
Хм .. кажется, люди делают то, что я пытаюсь сделать [здесь] (http://stackoverflow.com/questions/25319053/python-inline-if-statement-else-do-nothing), но я могу «Сделай это. Можете ли вы подтвердить, что я делаю что-то другое? –