Python 如何获取循环内部文本的长度

Python 如何获取循环内部文本的长度,python,count,Python,Count,如果在此之前使用for循环提取文本,那么如何获得一行中所有文档的文本长度 import requests from bs4 import BeautifulSoup url = 'https://en.wikipedia.org/wiki/Mount_Olympus,_Utah' response = requests.get(url) soup = BeautifulSoup(response.content, 'lxml') text = soup.find_all('p') fo

如果在此之前使用for循环提取文本,那么如何获得一行中所有文档的文本长度

import requests
from bs4 import BeautifulSoup

url = 'https://en.wikipedia.org/wiki/Mount_Olympus,_Utah'

response = requests.get(url)

soup = BeautifulSoup(response.content, 'lxml')

text = soup.find_all('p')

for text2 in text:
    r = text2.get_text().split()
    print(len(r))
    
输出:

117
23
84
73
66
69
9
问题是它正在计算每一行。我希望文档的长度在一行中,如下所示:

441
在这里:

在这里:

总结起来:

total_length = 0
for text2 in text:
    r = text2.get_text().split()
    total_length += len(r)
print(total_length)
总结起来:

total_length = 0
for text2 in text:
    r = text2.get_text().split()
    total_length += len(r)
print(total_length)
您可以添加一个变量total_len,并根据每个元素的元素长度将其递增

导入请求 从bs4导入BeautifulSoup url='1〕https://en.wikipedia.org/wiki/Mount_Olympus犹他州 response=requests.geturl soup=BeautifulSoupresponse.content,“lxml” text=soup.find_all'p' 总长度=0 对于文本中的文本2: r=text2.get_text.split 总长度+=总长度 打印总数 您可以添加一个变量total_len,并根据每个元素的元素长度将其递增

导入请求 从bs4导入BeautifulSoup url='1〕https://en.wikipedia.org/wiki/Mount_Olympus犹他州 response=requests.geturl soup=BeautifulSoupresponse.content,“lxml” text=soup.find_all'p' 总长度=0 对于文本中的文本2: r=text2.get_text.split 总长度+=总长度 打印总数
您可以将列表理解与总和一起使用-

printsum[lentext2.get_text.split for text2 in text] 所以,首先您要遍历text-对于text中的text2

然后,使用.get_text方法提取文本,将其拆分,并将其长度作为元素存储在列表-lentext2.get_text.split中

然后使用sum对该数组的所有元素求和,最后打印它


编辑:为了清楚起见,一行代码替换了循环的整个代码

您可以使用列表理解和总和-

printsum[lentext2.get_text.split for text2 in text] 所以,首先您要遍历text-对于text中的text2

然后,使用.get_text方法提取文本,将其拆分,并将其长度作为元素存储在列表-lentext2.get_text.split中

然后使用sum对该数组的所有元素求和,最后打印它

编辑:为了清楚起见,一个衬里代替了整个for循环