【问题标题】:How to get the first 6 texts如何获取前 6 个文本
【发布时间】:2021-11-12 20:14:06
【问题描述】:

现在我有一个包含许多评分的输出,并且只想在 python 中打印出前六分之一。

import re
import requests

data = requests.get('https://www.imdb.com/chart/').text
titles = re.findall('/title/\w*/(?=">)', data)
rating = re.findall('\d\.\d.*ratings', data) 

rating

我得到的输出:

['8.8 based on 716,954 user ratings',
 '8.8 based on 1,729,095 user ratings',
 '8.8 based on 1,937,913 user ratings',
 '8.7 based on 1,902,393 user ratings',
 '8.7 based on 2,167,514 user ratings',
 '8.7 based on 1,544,013 user ratings',
 '8.7 based on 1,203,819 user ratings',
 '8.6 based on 1,753,684 user ratings',

【问题讨论】:

标签: python loops text rating


【解决方案1】:

我假设您实际上想要获取 user_ratings 的前六个元素。
您可以使用列表切片来做同样的事情。此外,您可以使用列表推导和 f 字符串在评分前添加文本:

initial_six = user_ratings[:6]

formatted_text = [f'No.{initial_six.index(i)+1}: {i}' for i in initial_six]
print(formatted_text)

【讨论】:

  • 嗨,谢谢。但输出变为'No.1:No 1: No 1: No 1: No 1: 9.2 based on 2,460,830 user rating', 'No.2:No 2: No 2: No 2: No 2: 9.1 based on 1,702,153用户评分'.... 是否只能显示一个 No.1 和逗号后的换行符?
  • 我很确定它不会像那样重复。确保您正确复制。至于换行符,formatted_text 是一个列表。您可以简单地将其转换为带有'\n'.join(formatted_text) 的字符串,它会很好地打印出来
【解决方案2】:

您可以通过以下方式获取列表中的前六项:

your_list[:6]

编辑

for i in range(0,len(user_ratings)):
   user_ratings[i] = f"No {i+1}: {user_ratings[i]}" 
user_ratings[:6]

user_ratings = [f"No {i+1}: {user_ratings[i]}" for i in range(0, len(user_ratings))]

【讨论】:

  • 嗨,我尝试使用 rating = rating[:6] print (rating),但我不知道如何在每部电影前面添加编号
  • 不要使用函数名list作为变量名。
  • 我的意思是一个列表而不是函数名。
【解决方案3】:

user_ratings[0:6]将打印出user_ratings列表中的前六个元素

【讨论】:

  • 嗨,我尝试使用 rating = rating[:6] print (rating),但我不知道如何在每部电影前面添加编号
【解决方案4】:

试试这个!以下代码将解决您的问题:

import re
import requests, pprint

data = requests.get('https://www.imdb.com/chart/top').text
titles = re.findall('/title/\w*/(?=">)', data)
rating = re.findall('\d\.\d.*ratings', data)

rating_arr = []
for rate in rating[0:6]:
    rating_arr.append("No. {}: ".format(rating[0:6].index(rate) + 1) + rate)

pprint.pprint(rating_arr)

输出如下:

['No. 1: 9.2 based on 2,460,844 user ratings',
 'No. 2: 9.1 based on 1,702,157 user ratings',
 'No. 3: 9.0 based on 1,182,290 user ratings',
 'No. 4: 9.0 based on 2,416,183 user ratings',
 'No. 5: 8.9 based on 728,548 user ratings',
 'No. 6: 8.9 based on 1,265,055 user ratings']

【讨论】:

    猜你喜欢
    • 2013-05-22
    • 1970-01-01
    • 2017-05-06
    • 2022-12-04
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    相关资源
    最近更新 更多