小编Gsb*_*l10的帖子

在列表推导中处理lambda表达式中的元组

我正在学习python,当我意识到这一点时,我正在摆弄lambda表达式和列表推导:

>>> list(map(lambda x: x*x, [1,2]))

输出>>> 1,4但是

>>> list(map(lambda (x): x*x, [1,2])) 显示指向括号的错误 x

看来lambda表达式的参数列表周围没有括号.(在python 3.x中检查)

我现在想问一下,如果我不能在lambda表达式中的参数周围添加括号,那么我如何使用map和lambda表达式处理元组.例如:

>>> records = [('bob', 35, 'manager'), ('sue', 40, 'developer')]
>>> list(map((lambda (name, age, job): age), records))
Run Code Online (Sandbox Code Playgroud)

此语句显示语法错误,指示name参数前的括号.然后我尝试了一个没有括号的表达式:

>>> list(map((lambda name, age, job: age), records))

但是这个语句也显示一个错误,说lambda表达式需要3个参数,但只提供了1个参数.

我得到map函数从records列表中提取整个记录元组并将其传递给lambda函数,并将lambda function整个元组记录作为参数的 name参数.

我想知道,我如何处理lambda表达式中的元组.另外请告诉我为什么它写在书中(由Mark Lutz学习python)这是有效的吗?是python 2.x. 我是python的新手.提前致谢.

python lambda list-comprehension

3
推荐指数
1
解决办法
726
查看次数

匹配包含所有元音的单词的正则表达式是什么?

我正在 python 中学习正则表达式,但似乎无法掌握它。我正在尝试过滤掉所有包含英语元音的单词,这是我的正则表达式:

r'\b(\S*[aeiou]){5}\b'
Run Code Online (Sandbox Code Playgroud)

似乎它太模糊了,因为任何元音(甚至是重复的)都可以出现在任何地方,并且任何数字都是次数,所以这是抛出诸如“可操作”、“不幸”之类的词,它们确实将元音计数为 5,但不是所有元音. 我环顾了互联网,发现了这个正则表达式:

r'[^aeiou]*a[^aeiou]*e[^aeiou]*i[^aeiou]*o[^aeiou]*u[^aeiou]*
Run Code Online (Sandbox Code Playgroud)

但看起来,它只是为了元音的顺序出现,比我试图完成的任务非常有限。有人可以在为我遇到的问题制作正则表达式时“大声思考”吗?

python regex

3
推荐指数
1
解决办法
1532
查看次数

将列表附加到另一个列表时的奇怪输出

我只是练习python代码,发现一个奇怪的现象,同时将列表附加到另一个列表.请看一下代码:

inside = []
outside = []

for i in range(10):
    inside.append(i)
    outside.append(inside)

print(outside)
Run Code Online (Sandbox Code Playgroud)

它输出:

[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, …
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
78
查看次数

标签 统计

python ×3

lambda ×1

list-comprehension ×1

regex ×1