【发布时间】:2019-05-27 11:14:10
【问题描述】:
如何根据条件(例如找到数字 412 时)打破列表理解?
代码:
numbers = [951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 399,
162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 815, 67,
104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 958, 609, 842,
451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 743, 527]
even = [n for n in numbers if 0 == n % 2]
所以在功能上,你可以推断这是应该做的事情:
even = [n for n in numbers if 0 == n % 2 and break if n == 412]
我真的更喜欢:
- 单线
- 没有其他花哨的库,如 itertools,如果可能,“纯 python”(阅读:解决方案不应使用任何
import语句或类似语句)
【问题讨论】:
-
itertools是纯python。 -
...
itertools是 Python ...总的来说,这听起来像是一个普通的for循环的工作。 -
@Flavius:为什么从 Python 自己的库中导入一些东西不是“炫耀它的力量”?
-
@Flavius:所以你试图让你的同事相信你可以用 Python 写一些粗俗和丑陋的东西,这会以某种方式给他们留下深刻印象?
-
@Flavius,Python 的强大之处在于其标准库。如果更多的标准库函数是内置的,Python 会“更强大”吗?我想不是。无论哪种方式,它们都是标准的,但如果它们是内置的,那么命名空间冲突的可能性就会更大。最好将它们隔离开来。