【问题标题】:Understanding operators in for loops in Python 3了解 Python 3 中 for 循环中的运算符
【发布时间】:2022-06-14 10:20:24
【问题描述】:

我将以下代码作为 IBM ETL 证书的一部分作为练习,但不了解部分代码的工作原理。

代码:

    def freqAll(self):        
            # split text into words
            wordList = self.fmtText.split(' ')
            
            # Create dictionary
            freqMap = {}
            for word in set(wordList): # use set to remove duplicates 
freqMap[word] = wordList.count(word)
        
        return freqMap

在创建字典的块中,for循环中的代码说

for word in set(wordList):

python如何知道单词列表中的“单词”?代码中没有任何部分将“单词”定义为任何东西......

【问题讨论】:

  • for [variablename] in [iterable] 是它自己的显式语法结构,它定义了一个 for 循环。当不在此上下文中使用时,[object] in [collection] 也是一个运算符,用于确定某物是否是集合的成员。 python 解释器认为它们是完全不同的并且通常是明确的。
  • 您还熟悉哪些其他编程语言? Java 提供了 for-each 循环 for (int i: nums),它类似于上面的 Python 代码。

标签: python


【解决方案1】:

word 只是一个变量。您可以使用任何其他变量来代替 word

word 是一个临时变量,用于存储for 循环的项目范围内的当前位置值,该循环仅在其for 循环内具有范围。您可以使用任何其他变量名称来代替 word,例如 countitems 或只是 i

【讨论】:

  • 啊我想我明白了。所以如果我真的想要的话,这个词可能只是胡言乱语吗?在这个用例中,即使我使用了 'duck;相反,但它会遍历同一个列表并返回所需的结果?
【解决方案2】:

Python 中的 For 循环的工作方式与大多数其他语言中的不同。它们不是递增计数器,而是遍历“可迭代”,它可以是列表、集合、范围或许多其他元素。

对于循环的每次迭代,Python 都会向 in 右侧的项询问下一个值,并将其绑定到其左侧的变量名。因此,该词可以是任何变量名。它一直要求下一个值绑定到变量,直到右边的东西用完项目。此时,Python 结束循环并继续执行其余代码。

【讨论】:

    【解决方案3】:

    当您键入 for word in set(wordList): 时,它会隐式进行检查。

    word 是存储当时正在阅读的单词的变量,wordList 是您保存所有要阅读的单词的列表。

    https://peps.python.org/pep-0234/
    https://www.learnpython.org/es/Loops

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多