Python 3.x 使用嵌套if语句编写for循环的Pythonic方法
假设我有一个简单的python列表,其中包含费用类型,我想用for循环迭代这些费用。在每次迭代中,如果指标生成正确的费用类型,计数器将前进1。我可以很容易地用下面的代码编写,但它并没有使用快速运行的for循环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
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