在python列表理解中调用print

在python列表理解中调用print,第1张

概述所以我试图推出一个我在这个网站上真正第一次听到的技巧. [i for i in range(0, 10) if True or print(i)] 这个想法是你可以在listcomp的每一步调用一个任意函数,方法是将它放在一个总是返回True的“if”语句中.但该代码给出了语法错误. 如果我包装我想要这样调用的函数,但是: def f(i): print i[i for i in ra 所以我试图推出一个我在这个网站上真正第一次听到的技巧.

[i for i in range(0,10) if True or print(i)]

这个想法是你可以在Listcomp的每一步调用一个任意函数,方法是将它放在一个总是返回True的“if”语句中.但该代码给出了语法错误.

如果我包装我想要这样调用的函数,但是:

def f(i):    print i[i for i in range(0,10) if True or f(i)]

它产生所需的输出.所以我想知道,在Python的脑海中,两者之间有什么不同,因为我不知道它可能是什么 – 两个函数都返回“None”,对吧?

解决方法 您不能将语句(如Python 2中的print)与列表推导混合使用.

但是,您可以通过添加以下内容使print()成为一个函数:

from __future__ import print_function

在您的文件的顶部.这将print()转换为整个模​​块的功能.

但是,您正在使用True或其他语句,并且永远不会评估’某事’,因为Python布尔表达式会短路.你想转过来:

if print(something) or True

如果左侧已经评估为True,那么评估一个或表达式的右侧是没有意义的;没有任何右侧可以提出的将使整个表达方式变得虚假,永远.

你真的想在列表理解中避免这种副作用.使用正确的循环并将这些惊喜从代码中删除,如果某些东西或True真的是一个混淆未来的代码维护者(包括你)的黑客.

总结

以上是内存溢出为你收集整理的在python列表理解中调用print全部内容,希望文章能够帮你解决在python列表理解中调用print所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1194654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存