python中列表上的附加项

2024-10-02 12:29:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个计算看电影时间的程序,但我遇到了一个问题。我不知道如何把所有的数字加在一起,下面是我的代码中的一些示例分钟,我想把它们加在一起,但我不知道怎么加。要指定如何将它们组合在一起,我希望代码执行x+y+z

以下是我的所有代码,用于获取会议记录:

def convert(lst):
    return ' '.join(lst)

with open("test.txt", 'r') as f:
    lines = f.read()
    test = convert(lines)
    urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', lines)

# scrape elements
for url in urls:
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")
    # print titles only
    minute = soup.find("p", class_="text-link text-footer")
    tid = minute.get_text()
    tid2 = tid.strip()
    tid3 = [(tid2[:3])]

从我的代码中获得的一些示例分钟,如果我打印(tid3):

148
119
121
120
113
129

我试过:

print(sum(map(int, tid3)))
print(sum(tid3))

代码打印(sum(map(int,tid3))只打印出1+4+8,而不是148+119

代码打印(sum(tid3))刚刚出现错误:不支持+:“int”和“str”的操作数类型


Tags: 代码texttesturl示例convertresponseurls
2条回答
# you can create your function here 
def sum_digit(num):
      result = 0
      while num > 0:
        rem = num % 10
        result = result + rem
        num = int(num/10)
      return result

def convert(lst):
    return ' '.join(lst)

with open("test.txt", 'r') as f:
    lines = f.read()
    test = convert(lines)
    urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', lines)

# scrape elements
for url in urls:
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")
    # print titles only
    minute = soup.find("p", class_="text-link text-footer")
    tid = minute.get_text()
    tid2 = tid.strip()
    tid3 = [(tid2[:3])] # then can call here `sum_degit(num)`

事实上,您试图在每次迭代时求和,此时您只能访问一个值,您必须沿for循环将它们全部(在list作为int)收集,并在最后求和:

values = []
for url in urls:
    # ...
    tid2 = tid.strip()  # 148 mins More details at IMDb TMDb Report this film
    value = int(tid2[:3])  # 148 as int
    values.append(value)

total = sum(values)
print(total)

您可以删除intermatate tid*变量,只需执行以下操作

for url in urls:
    # ...
    minute = soup.find("p", class_="text-link text-footer")
    values.append(int(minute.get_text().strip()[:3]))

相关问题 更多 >

    热门问题