标签: list-comprehension

你如何跳过Python的调试器(pdb)中的列表理解?

pdbnext指令不跨过列表内涵,而是通过每个迭代步骤.有没有办法跨过它们,所以调试将在列表理解后的下一行继续?

我不得不求助于列出代码,在下一行设置断点,然后继续执行到下一个断点.这很烦人,我认为必须有更好的方法.

python list-comprehension pdb

50
推荐指数
1
解决办法
4790
查看次数

列表理解:为什么这是语法错误?

为什么在以下列表理解中print(x)这里不是有效的(SyntaxError)?

my_list=[1,2,3]
[print(my_item) for my_item in my_list]
Run Code Online (Sandbox Code Playgroud)

为了对比 - 以下不会给出语法错误:

def my_func(x):
    print(x)
[my_func(my_item) for my_item in my_list]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension python-2.6

47
推荐指数
3
解决办法
3万
查看次数

为什么列表推导式在内部创建一个函数?

中列表理解的反汇编:

Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dis
>>> 
>>> dis.dis("[True for _ in ()]")
  1           0 LOAD_CONST               0 (<code object <listcomp> at 0x7fea68e0dc60, file "<dis>", line 1>)
              2 LOAD_CONST               1 ('<listcomp>')
              4 MAKE_FUNCTION            0
              6 LOAD_CONST               2 (())
              8 GET_ITER
             10 CALL_FUNCTION            1
             12 RETURN_VALUE

Disassembly of <code object <listcomp> at 0x7fea68e0dc60, file "<dis>", line 1>:
  1           0 BUILD_LIST               0
              2 LOAD_FAST …
Run Code Online (Sandbox Code Playgroud)

python cpython list-comprehension python-internals dis

47
推荐指数
1
解决办法
3256
查看次数

使用Python列表推导计算列表中的正整数元素

我有一个整数列表,我需要计算它们中有多少是> 0.
我目前正在使用列表理解,它看起来像这样:

sum([1 for x in frequencies if x > 0])
Run Code Online (Sandbox Code Playgroud)

这似乎是一个体面的理解,但我真的不喜欢"1"; 这看起来像是一个神奇的数字.有没有更多的Python方法来做到这一点?

python integer list-comprehension sum list

46
推荐指数
3
解决办法
5万
查看次数

"列表理解"是什么意思?它是如何工作的,我该如何使用它?

我有以下代码:

[x ** 2 for x in range(10)]
Run Code Online (Sandbox Code Playgroud)

当我在Python Shell中运行它时,它返回:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Run Code Online (Sandbox Code Playgroud)

我搜索过,似乎这被称为列表理解,但它是如何工作的?

python list-comprehension list

46
推荐指数
4
解决办法
4792
查看次数

如何在列表理解中进行分配?

我想在列表推导中使用赋值运算符.我怎样才能做到这一点?

以下代码是无效的语法.我的意思是如果匹配则设置lst[0]为空字符串:''pattern

[ lst[0] = '' for pattern in start_pattern if lst[0] == pattern ]
Run Code Online (Sandbox Code Playgroud)

谢谢!

python list-comprehension

45
推荐指数
4
解决办法
4万
查看次数

如何在Python中并行化列表理解计算?

列表推导和地图计算都应该 - 至少在理论上 - 相对容易并行化:列表理解中的每个计算都可以独立于所有其他元素的计算来完成.例如在表达式中

[ x*x for x in range(1000) ]
Run Code Online (Sandbox Code Playgroud)

每个x*x-计算可以(至少在理论上)并行完成.

我的问题是:是否有任何Python-Module/Python-Implementation/Python Programming-Trick来并行化列表理解计算(为了使用所有16​​/32/...核心或通过计算机网格分配计算或在云上)?

python parallel-processing list-comprehension

43
推荐指数
5
解决办法
2万
查看次数

在Swift中列出理解

语言指南没有透露列表理解的痕迹.在Swift中实现这一目标的最佳方法是什么?我正在寻找类似的东西:

evens = [ x for x in range(10) if x % 2 == 0]
Run Code Online (Sandbox Code Playgroud)

list-comprehension swift

43
推荐指数
2
解决办法
1万
查看次数

高级嵌套列表理解语法

我正在玩列表推导以更好地理解它们,我遇到了一些我无法解释的意外输出.我之前没有找到这个问题,但如果是/是/重复的问题,我道歉.

我本质上是在尝试编写一个生成生成器的生成器.使用列表推导的简单生成器如下所示:

(x for x in range(10) if x%2==0) # generates all even integers in range(10)
Run Code Online (Sandbox Code Playgroud)

我试图做的是编写一个生成两个生成器的生成器 - 第一个生成范围(10)中的偶数,第二个生成范围(10)中的奇数.为此,我做了:

>>> (x for x in range(10) if x%2==i for i in range(2))
<generator object <genexpr> at 0x7f6b90948f00>

>>> for i in g.next(): print i
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <genexpr>
UnboundLocalError: local variable 'i' referenced before assignment
>>> g.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in …
Run Code Online (Sandbox Code Playgroud)

python syntax scope list-comprehension

42
推荐指数
4
解决办法
5万
查看次数

Python列表理解加入列表列表

特定 lists = [['hello'], ['world', 'foo', 'bar']]

如何将其转换为单个字符串列表?

combinedLists = ['hello', 'world', 'foo', 'bar']

python list-comprehension

42
推荐指数
2
解决办法
3万
查看次数