【问题标题】:Python - Zip Function and Filter - Pairwise OperationsPython - Zip 函数和过滤器 - 成对操作
【发布时间】:2020-07-02 19:10:24
【问题描述】:

我觉得下面的代码有点混乱。

l1 = ['left', 'up', 'front']
l2 = ['right', 'down', 'back']

opposites=filter(lambda word: len(word[0]) > 3 and len(word[1]) >3,zip(l1,l2))

上面的代码应该从两个长度至少为 3 个字母的列表中获取单词,并使用过滤器和 zip 函数将它们添加到一个列表(相反)中。

我不明白为什么我们有 word[0] 和 word[1]..."word" 对我来说是 1 个列表,我们得到前两个元素或其他东西...

我对同时使用这些功能没有太多经验,但有人可以更详细地向我解释这部分...

谢谢!

【问题讨论】:

    标签: python-3.x filter zip pairwise


    【解决方案1】:

    在这种情况下,zip 创建一个对列表。

    l1 = ['left', 'up', 'front']
    l2 = ['right', 'down', 'back']
    assert list(zip(l1,l2)) == [('left', 'right'), ('up', 'down'), ('front', 'back')]
    

    这个列表被传递给filter 函数。 word 作为 lambda 参数在这里令人困惑,因为它表示两个字符串的元组(对)。

    因此,获取 word[0]word[1] 会分别为您提供一对中的第一个和第二个单词。

    有关 zip 功能的更多信息可以找到here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-26
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 2021-07-22
      • 2021-03-21
      相关资源
      最近更新 更多