Python-reduce 函数和 |操作员

发布于 2024-11-13 10:01:49 字数 710 浏览 4 评论 0原文

我正在查看一些 Web2py 代码。

变量tokens是某种字符串列表。更准确地说,它被定义为 tokens = form.vars.name.split() ,其中 form.vars.name 是一个字符串。

我的问题涉及以下说明:

query = reduce(lambda a,b:a&b,[User.first_name.contains(k)|User.last_name.contains(k) for k in tokens])

这是我的问题:

  1. 我知道lambda a,b:a&b定义了ab的函数。什么是 a&b

  2. User.first_namecontains 方法是否特定于 Web2py ?或者它是否存在于标准 Python 中?

  3. User.first_name.contains(k)|User.last_name.contains(k) 中的这个 | 运算符是什么?

  4. reduce 函数有什么作用?

I am looking at some Web2py code.

The variable tokens is some kind of a list of strings. To be more precise, it is defined as tokens = form.vars.name.split() where form.vars.name is a string.

My question deals with the following instruction :

query = reduce(lambda a,b:a&b,[User.first_name.contains(k)|User.last_name.contains(k) for k in tokens])

Here are my questions :

  1. I know lambda a,b:a&b defines a function of a and b. What is a&b ?

  2. Is the contains method of User.first_name specific to Web2py ? Or does it exist in standard Python ?

  3. What is this | operator in User.first_name.contains(k)|User.last_name.contains(k) ?

  4. What does the reduce function do ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

灯角 2024-11-20 10:01:49
  1. 在Web2Py中,&|这里不是按位和/或,而是用来构建一个表示数据库查询的特殊对象!它们对应于 SQL 语句中的 ANDOR
  2. containsWeb2Pys DAL
  3. 请参阅 1.reduce
  4. 折叠,一个非常基本的高阶函数,本质上使用给定的函数将列表简化为结果。
  1. In Web2Py & and | are not bitwise and/or here, but are used to build a special object that represents a database query! They correspond to AND and OR in SQL statements
  2. contains is part of Web2Pys DAL
  3. See 1.
  4. reduce is fold, a very fundamental higher order function that essentially reduces a list to a result, using the function given.
陌若浮生 2024-11-20 10:01:49
  1. 按位与
  2. 我相信 contains 在这种情况下或多或少是到 __contains__ 的映射,但它确实出现在 Py3k 文档
  3. 按位或
  4. reduce 迭代可迭代对象(参数 2)并调用传递的函数(参数1) 对所有元素。它返回总值。
  1. Bitwise and.
  2. I believe contains, in that context is more-or-less a mapping to __contains__, but it does appear in Py3k docs.
  3. Bitwise or.
  4. reduce iterates through an iterable object (param 2) and calls the passed function (param 1) on all of the elements. It returns the aggregate value.
机场等船 2024-11-20 10:01:49
  1. & 是按位与运算符。编写代码的人几乎肯定意味着 and,尽管对于布尔值,结果是相同的。

  2. .contains()是web2py提供的方法。 a.contains(b) 更 Python 的写法是 b in a

  3. | 是按位或运算符。同样,他们的意思可能是 or

  4. reduce 将作为第一个参数给出的函数应用于第二个参数中的可迭代对象,从左到右,首先使用前 2 个元素,然后使用该计算的结果和第三个元素等。

  1. & is the bitwise and operator. The person writing the code almost certainly meant and, although for boolean values the result is the same.

  2. .contains() is a method provided by web2py. a.contains(b) is more pythonically written as b in a.

  3. | is the bitwise OR operator. Again, they probably meant or.

  4. reduce applies the function given as the first argument to the iterable in the second argument, from left-to-right, first with the first 2 elements, then with the result of that calculation and the third element, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文