当前位置: 首页 > 面试题库 >

Python中不带[]的列表理解

堵德曜
2023-03-14
问题内容

加入列表:

>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'

join 必须采取迭代。

显然,join的论点是[ str(_) for _ in xrange(10) ],这是一个列表理解。

看这个:

>>>''.join( str(_) for _ in xrange(10) )
'0123456789'

现在,join的参数为just str(_) for _ in xrange(10),no [],但结果相同。

为什么?是否str(_) for _ in xrange(10)还会产生列表或可迭代项?


问题答案:
>>>''.join( str(_) for _ in xrange(10) )

这称为生成器表达式,并在PEP 289中进行了说明。

生成器表达式和列表理解之间的主要区别在于前者不在内存中创建列表。

请注意,还有第三种编写表达式的方法

''.join(map(str, xrange(10)))


 类似资料:
  • 问题内容: 我们都知道python的 句法。 但是,列表理解的 AST表示可以容纳多个’if’表达式: 有人可以给我一个python代码示例,该示例会生成带有多个“ if”表达式的AST吗? 问题答案: 只需将它们一个接一个地堆叠: 产生介于11和49之间(含)的整数。

  • 问题内容: 如何在Python中执行以下操作? 实质上: 用空字符串替换所有的None,然后 执行功能。 问题答案: 你可以完全做到这一点,这只是一个订购问题: 一般来说, 而且,if仅对于具有条件的列表理解而言, 请注意,这实际上使用了一种不同的语言构造,即条件表达式,它本身不是理解语法的一部分,而ifafter则for…in是列表理解的一部分,用于从可迭代的源中筛选元素。 条件表达式可用于各种

  • 问题内容: 是否可以在Python中定义递归列表理解? 可能是一个简单的示例,但类似于: 这样有可能吗? 问题答案: 不,没有(记录,可靠,稳定,… ;-)引用“当前理解”的方法。您可以只使用一个循环: 当然,这是非常昂贵的(O(N平方)),因此您可以使用辅助工具对其进行优化(我假设将项目的顺序与中的项目顺序保持一致,否则可以做到;-)。 ..: 对于非常长的列表(O(N)而不是N平方),这要快得

  • 问题内容: 伙计们 我正在尝试找到问题的最优雅解决方案,并且想知道python是否为我想做的事情内置了任何东西。 我正在做的是这个。我有一个列表,并且我有一个接受项目并返回列表的函数。我可以使用列表推导来转换所有内容,例如: 但这返回一个列表列表; 我真正想要的是获取扁平化的列表; 现在,其他语言也有它。传统上用函数式编程语言来称呼它,而.Net称它为。python有类似的东西吗?有没有一种巧妙的

  • 问题内容: 我有这个嵌套列表: 现在,我要做的是将列表中的每个元素转换为float。我的解决方案是这样的: 但这可以使用嵌套列表理解来完成吗? 我所做的是: 但是结果是一堆100的总数为2400。 任何解决方案,解释将不胜感激。谢谢! 问题答案: 这是使用嵌套列表理解的方法: 这将为你提供一个列表列表,与你开始时的列表类似,只是使用浮点数而不是字符串。如果你想要一个固定列表,则可以使用。

  • 问题内容: 由于Java不允许将方法作为参数传递,因此您使用什么技巧来实现Python(如Java中的列表理解)? 我有一个字符串列表(ArrayList)。我需要通过使用函数来转换每个元素,以便获得另一个列表。我有几个函数,它们将一个String作为输入,并返回另一个String作为输出。如何制作一个可以将列表和函数作为参数的通用方法,这样我就可以在处理完每个元素后获取列表。从字面上看这是不可能