gpt4 book ai didi

python - 统计列表中符合特定条件的元素

转载 作者:行者123 更新时间:2023-11-28 19:14:50 45 4
gpt4 key购买 nike

我有一个列表,说:

   list = ['KAYE', 'DAVID', 'MUSIC', '88', 'ART', '45', 'FRENCH', '36']

我想统计列表中有多少个小于50的标记,所以我写了:

count = 0
if list[3] < '50' or list[5] < '50' or list[7] < '50':
count = count + 1

但计数始终为1,当有多个小于50的标记时不累加。

我该如何解决这个问题?非常感谢您的帮助

最佳答案

您正在运行一个测试,该测试会查看多种可能的条件,并在其中任何条件为真时执行一段代码。

我想你想统计有多少分数是 <50,然后报告总数。

让我们做一个简单的版本,然后从那里发展:

student = ['KAYE', 'DAVID', 'MUSIC', '88', 'ART', '45', 'FRENCH', '36']
ALARM = 50

num_alarms = 0

if int(student[3]) < ALARM:
num_alarms += 1
print("Alarm! The " + student[2] + " grade is too low!")

if int(student[5]) < ALARM:
num_alarms += 1
print("Alarm! The " + student[4] + " grade is too low!")

if int(student[7]) < ALARM:
num_alarms += 1
print("Alarm! The " + student[6] + " grade is too low!")

if num_alarms != 0:
print("There were " + str(num_alarms) + " grades too low.")

这就是我认为您正在尝试做的事情。但我们可以稍微清理一下:

student = ['KAYE', 'DAVID', 'MUSIC', '88', 'ART', '45', 'FRENCH', '36']
ALARM = 50

num_alarms = 0

# count from 3 .. by 2
for score in range(3,len(student), 2):
if int(student[score]) < ALARM:
print("Alarm! The " + student[score-1] + " grade is too low!")
num_alarms += 1

if num_alarms != 0:
print("There were " + str(num_alarms) + " grades too low.")

最后,我们可以使用“完整的 Python”并添加列表理解:

alarms = [ student[class_] for class_ in range(2, len(student), 2) if int(student[class_ + 1]) < ALARM ]

for class_ in alarms:
print("Alarm! The " + class_ + " grade is too low!")

num_alarms = len(alarms)

if num_alarms != 0:
print("There were " + str(num_alarms) + " grades too low.")

关于python - 统计列表中符合特定条件的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34983059/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com