gpt4 book ai didi

python - 如何将两个 for 循环合并到列表理解中

转载 作者:行者123 更新时间:2023-12-01 09:29:10 24 4
gpt4 key购买 nike

由于我正在处理大量数据,因此如何将这两个 for 循环合并到列表理解中。此函数的目的是查找给定字符串中大写单词的数量。给出的数据是电子邮件文本列表,这应该返回数字列表(数字是每个电子邮件线程中大写单词的数量)。

def get_capital_prop(data):
total_capitals = []
temp = 0

for i in range(len(data)):
count = 0
for word in data[i]:
count += sum(1 for c in word if c.isupper())
total_capitals.append(count / len(data[i]))
return total_capitals

最佳答案

假设我正确理解您正在查找以大写字母开头的单词数,这里有一个简单的方法:

def get_capital_prop(data):
return len([word for words in data for word in words if word[0].isupper()])

该解决方案假设每个单词至少有一个字母,并生成一个临时列表。它稍微复杂一些的解决方案可以处理零长度的单词,并在不创建中间列表的情况下获取数字,但无论如何这都是一个很好的起点。

根据更新的描述,您真正想要的只是获取字符串列表中所有大写字符的计数列表。这应该看起来像:

def get_capital_prop(data):
return [len([c for c in email if c.isupper()]) for email in data]

或者,避免创建中间列表:

def get_capital_prop(data):
return [sum(1 for c in email if c.isupper()) for email in data]

关于python - 如何将两个 for 循环合并到列表理解中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50111102/

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