gpt4 book ai didi

python - 在代码高尔夫中耗尽生成器的最短代码

转载 作者:行者123 更新时间:2023-11-28 20:41:04 25 4
gpt4 key购买 nike

鉴于您不关心实际输出,有什么方法可以耗尽发电机?

我在 map 中使用的函数将在其自身上打印,因此我所要做的就是让 map 进行评估。

目前,我使用 list() 来执行此操作,但我正在寻找更短的方法。

任意示例:

list(map(print,range(10)))

最佳答案

在 3.5 中,您可以滥用 additional unpacking generalizations并替换:

list(map(print,range(10)))

与:

*map(print,range(10)),

保存四个字符(它生成一个 元组 None)。

在 3.4 及更早版本中,您可以(假设一个字符长的文字存在,但不会出现在输出中):

0in map(print,range(10))  # tokenizer is fine with no space between 0 and in

它节省了两个字符,同时也避免了存储任何中间 list

如果输出完全不受控制,并且您低于 3.5,正如其他人指出的那样,保存单个字符很容易(例如,只需将 list 替换为 any,如果只有“falsy”值可能,all如果只有“truthy”值可能,或者 set() 用于所有值,但代价是存储 set),但如果您有版本或生成器输出保证,以上内容会节省更多。

显然,如果您不需要 print,这可以缩短更多,因为 *somegen, 将完成工作而没有毫无意义的 prints,只需要比首先引用生成器多两个字符。

关于python - 在代码高尔夫中耗尽生成器的最短代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34494835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com