当前位置: 首页 > 知识库问答 >
问题:

在pyhton词典中搜索

汪深
2023-03-14

我正在用python和一个我无法解决的字典。我在查字典。我尝试搜索所有medias.items()中字典words的每个元素,然后四行打印出来,两行用于media[0],两行用于media[1]。是不是我做错了什么?有办法修好它吗?提前谢谢你。

import requests
import time
from bs4 import BeautifulSoup

headers = {
    'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"}


def count_words(url, the_word):
    r = requests.get(url, headers=headers)
    return r.text.lower().count(the_word)

def main():
  #  url = 'https://www.nytimes.com/'
    medias = {
        'Los Angeles Times': ['http://www.latimes.com/'],
        'New York Times': ['http://www.nytimes.com/']
    }

    word = 'trump'
    words = ['Trump', 'Facebook']

    print('--- Iniciando ---')
    print('Hora: ', time.strftime("%X"))
    for web_name, urls in medias.items():
        for url in urls:
            count = count_words(url, words)
            print('La palabra {} aparece {} veces en el sitio del {}.'.format(words, count, web_name))

if __name__ == '__main__':
    main()

共有2个答案

梁巴英
2023-03-14

我在您的代码中修复了一些错误:

首先,您在使用单词时忘记了循环遍历您的数组,所以我在代码的最后添加了一个for循环来循环遍历那些单词。

其次,在我这样做之后,您的代码返回零,因此我向count_words中的每个单词添加。low(),然后它就工作了。

import requests
import time
from bs4 import BeautifulSoup

headers = {
    'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"}


def count_words(url, the_word):
    r = requests.get(url, headers=headers)
    return r.text.lower().count(the_word.lower())

def main():
  #  url = 'https://www.nytimes.com/'
    medias = {
        'Los Angeles Times': ['http://www.latimes.com/'],
        'New York Times': ['http://www.nytimes.com/']
    }

    word = 'trump'
    words = ['Trump', 'Facebook']

    print('--- Iniciando ---')
    print('Hora: ', time.strftime("%X"))
    for web_name, urls in medias.items():
        for url in urls:
            for word in words:
                count = count_words(url, word)
                print('La palabra {} aparece {} veces en el sitio del {}.'.format(word, count, web_name))

if __name__ == '__main__':
    main()
谢善
2023-03-14
for web_name, urls in medias.items():
        for url in urls:
            for word in words:
                count = count_words(url, word)
                print('La palabra {} aparece {} veces en el sitio del {}.'.format(word, count, web_name))

您传递了一个列表,而应该向count函数传递一个单词。

 类似资料:
  • 问题内容: 我正在尝试实现一个程序,该程序将接受用户输入,将该字符串拆分为标记,然后在字典中搜索该字符串中的单词。我解析的字符串的目标是使每个标记都成为英语单词。 例如: 我目前有这段代码,可以完成所有工作,直到所需的输出部分为止: 我知道有更好的方法来存储字典(例如,二进制搜索树或哈希表),但无论如何我都不知道如何实现。 我坚持如何实现一种方法,该方法将检查拆分字符串以查看每个段是否都是词典中的

  • 问题内容: 我有一些这样的Python字典: 例如 我需要搜索字典中是否有字典,并使用来计算。但是,如果整个字典中没有任何字典,则需要继续 下一个 字典。 这是我的尝试: 问题答案: 你近了 如果您需要知道内部s中有多少个作为键,则可以: 之所以可行,是因为每个密钥只能进入一次,因此您只需测试密钥是否退出即可。返回或等于和,因此是的出现次数。

  • 现在使用了Pypy首创的“紧凑”表示形式。与Python3.5相比,新的dict()的内存使用量减少了20%到25%。PEP 468(保留函数中**kwargs的顺序。)是通过这个来实现的。这个新实现的保序方面被认为是一个实现细节,不应该被依赖(这在将来可能会改变,但是在更改语言规范以强制所有当前和将来的Python实现的保序语义之前,希望在几个版本中使用这个新的dict实现;这也有助于保持与仍然

  • 问题内容: 我有一个看起来像这样的csv: 我想制作一个以类别为键的字典,并以剩余数据作为值的字典列表。所以它看起来像这样: (此处缩进以提高可读性)。 我像下面的代码片段一样尝试了一下,但是到那儿我什么也没得到: 问题答案: 使用:

  • 问题内容: 我是Swift的新手,正在上课学习iOS编程。我发现自己很困惑如何在字典数组中搜索字符串值并将字符串值转储到数组中。这是从我的Xcode游乐场获取的。 我正在尝试找出方法:1)搜索字典数组2)将搜索结果转储到数组(由我创建) 这些是角色字典。 这是上面列出的字符词典的数组。 这是我要编写的功能。 对于在此方面取得进展的任何帮助,我将不胜感激。我已经为示例进行了挖掘,但是我很快就会找到一

  • 有下一个例子: 知道locale属性包含的是来自数据库的dictionary对象,我如何用JSDoc记录其内部属性? 目前,我正在考虑为我的区域设置对象键入typedef,那么我可以将locale属性设置为我定义的类型的数组吗?这样做对吗?

  • 问题内容: 给定一个像这样的字典: 如何创建一个字典列表,该列表结合了第一个字典键的各种值?我想要的是: 问题答案: 我认为您想要笛卡尔积,而不是排列,在这种情况下可以提供帮助:

  • 问题内容: 搜索一个值并获取父词典名称(键): 在以上字典中,我需要搜索类似的值:。其中,字典中没有任何值重复。如何搜索?因此它应该返回字典中的父键。 请注意 :解决方案应在 未修改的情况下 适用 于 Python 2.7和Python 3.3。 问题答案: 这是对嵌套dict的迭代遍历,还可以跟踪导致特定点的所有键。因此,一旦您在字典中找到正确的值,您就已经具有获取该值所需的键。 如果将以下代码