这种列表理解的正确 python 语法是什么?
任务:{x*y,使得x属于S& y 是迭代次数 } 其中 S 是其他集合 像这样的:
j=0
[i*j for j++ and i in S]
[s1*1, s2*2, s3*3...]
task: {x*y such that x belongs to S & y is iteration count }
where S is some other set
something like this:
j=0
[i*j for j++ and i in S]
[s1*1, s2*2, s3*3...]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
对于您编辑的问题,您希望
python 没有
++
因为它在语句和表达式之间保持明确的区别。使用另一种方法来做到这一点是
,还有另一种方法是
我认为第一种方法是最好的方法,因为它减少了函数调用并且是最具可读性的。
另外,如果您不知道您绝对需要一个列表,请使用生成器表达式。
这将允许您一次处理一个结果,并且永远不会将整个列表存储在内存中。您可以将生成器表达式传递给
sum
、max
、min
和大多数其他内置函数。for your edited question, you want
python doesn't have
++
because it keeps a clear distinction between statements and expressions. useanother way to do this is
and yet another way is
I think that the first is the best way to do it because it reduces function calls and is the most readable.
Also, if you don't know that you absolutely need a list, use a generator expression
This will allow you to process the results one at a time and never store a whole list in memory. You can pass a generator expression to stuff like
sum
,max
,min
and most other builtins.一种方法是使用
enumerate
与range
结合使用:查看其他答案(很多)其他方法可以做到这一点:) :)
One way to do this would be to use
enumerate
in conjunction withrange
:Look at other answers for (a lot of) other ways to do this :) :)
我会在发电机中做到这一点:
I'd do it in a generator:
“”“
任务:{x*y,使得x属于S& y 是迭代次数 } 其中 S 是其他集合
[剪掉 i 和 j 的不幸介绍]
[s1*1、s2*2、s3*3...]
“””
一个非常简单的翻译:
或者
"""
task: {x*y such that x belongs to S & y is iteration count } where S is some other set
[snip unfortunate introduction of i and j]
[s1*1, s2*2, s3*3...]
"""
a very simple translation:
or
您可以使用当前元素索引作为增量器,
因此您的 c-ish“j++” 是 S.index(i)+1
you can use the current element index as an incrementor
so your c-ish "j++" is S.index(i)+1