Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用嵌套if语句编写for循环的Pythonic方法_Python 3.x_Loops_For Loop - Fatal编程技术网

Python 3.x 使用嵌套if语句编写for循环的Pythonic方法

Python 3.x 使用嵌套if语句编写for循环的Pythonic方法,python-3.x,loops,for-loop,Python 3.x,Loops,For Loop,假设我有一个简单的python列表,其中包含费用类型,我想用for循环迭代这些费用。在每次迭代中,如果指标生成正确的费用类型,计数器将前进1。我可以很容易地用下面的代码编写,但它并没有使用快速运行的for循环 array = ['Groceries', 'Restaurant', 'Groceries', 'Misc', 'Bills'] sum = 0 for i in range(len(array)): if array[i] == 'Groceries': sum

假设我有一个简单的python列表,其中包含费用类型,我想用for循环迭代这些费用。在每次迭代中,如果指标生成正确的费用类型,计数器将前进1。我可以很容易地用下面的代码编写,但它并没有使用快速运行的for循环

array = ['Groceries', 'Restaurant', 'Groceries', 'Misc', 'Bills']
sum = 0
for i in range(len(array)):
    if array[i] == 'Groceries':
        sum += 1 
有没有一种更像python的方式来编写这个循环以加速执行?我看到过类似下面代码片段的示例。注意:下面的代码片段不起作用,它只是我以前见过的加速格式的一个示例,但我并不完全理解

sum = [sum + 1 for i in array if array[i] == 'Groceries']
绝对是而不是对数组进行迭代的Python ic方式。这是视觉基础思维,你应该从中解放自己

如果要对数组进行迭代,只需按如下方式对其进行迭代:

array = ['Groceries', 'Restaurant', 'Groceries', 'Misc', 'Bills']
for eachItem in array:
   ...
你在循环中做什么取决于你自己。如果要计算列表中的食品杂货数量,可以执行以下操作:

array = ['Groceries', 'Restaurant', 'Groceries', 'Misc', 'Bills']
groceriesTotal = 0
for eachItem in array:
    if eachItem == 'Groceries':
         groceriesTotal = groceriesTotal + 1
这是简单、清晰和通俗的,足以让其他人阅读

绝对是而不是对数组进行迭代的Python ic方式。这是视觉基础思维,你应该从中解放自己

如果要对数组进行迭代,只需按如下方式对其进行迭代:

array = ['Groceries', 'Restaurant', 'Groceries', 'Misc', 'Bills']
for eachItem in array:
   ...
你在循环中做什么取决于你自己。如果要计算列表中的食品杂货数量,可以执行以下操作:

array = ['Groceries', 'Restaurant', 'Groceries', 'Misc', 'Bills']
groceriesTotal = 0
for eachItem in array:
    if eachItem == 'Groceries':
         groceriesTotal = groceriesTotal + 1

这是简单、清晰和通俗的,足以让其他人阅读

你似乎认为你需要一份清单来理解这一点。但是列表理解产生列表,你需要一个标量。尝试
数组。计数(“杂货”)

你似乎认为你需要一份清单来理解这一点。但是列表理解产生列表,你需要一个标量。尝试
数组。计数(“杂货”)

如果只是计数,请尝试收集。计数器:

from collections import Counter


array = ['Groceries', 'Restaurant', 'Groceries', 'Misc', 'Bills']

counts = Counter(array)

print(counts)
# Counter({'Groceries': 2, 'Bills': 1, 'Restaurant': 1, 'Misc': 1})

print(counts['Groceries'])
# 2

如果只是关于计数,请尝试收集。计数器:

from collections import Counter


array = ['Groceries', 'Restaurant', 'Groceries', 'Misc', 'Bills']

counts = Counter(array)

print(counts)
# Counter({'Groceries': 2, 'Bills': 1, 'Restaurant': 1, 'Misc': 1})

print(counts['Groceries'])
# 2