2021.5.14 周五
留●白
宜
沉思 浮躁
忌
今日推荐
来看看能满足需求的简短代码:
这个网站有很多精简的代码,实现了想要的效果,以python为例:
example 1: 使用迭代器函数和初始种子值构建列表。
迭代器函数接受一个参数,并且必须始终返回包含两个元素([value,nextSeed])或False的列表以终止。使用生成器函数fn_generator,该函数使用while循环调用迭代器函数并产生该值,直到返回False。使用列表推导,使用迭代器函数返回由生成器生成的列表。
def unfold(fn, seed):
def fn_generator(val):
while True:
val = fn(val[1])
if val == False: break
yield val[0]
return [i for i in fn_generator([None, seed])]
example 2: 创建一个函数,该函数将为给定对象上的指定属性调用谓词函数。
返回一个带对象的lambda函数,并将谓词函数fn应用于指定的属性。
def check_prop(fn, prop):
return lambda obj: fn(obj[prop])
example 3: 在start(inclusive)和end(not inclusive)之间创建日期列表。
使用datetime.timedelta.days获取开始和结束之间的日期。使用int()将结果转换为整数,并使用range()在每天进行迭代。使用列表推导和datetime.timedelta()创建datetime.date对象的列表。
from datetime import timedelta, date
def daterange(start, end):
return [start + timedelta(n) for n in range(int((end - start).days))]
Examples
from datetime import date
daterange(date(2020, 10, 1), date(2020, 10, 5))
# [date(2020, 10, 1), date(2020, 10, 2), date(2020, 10, 3), date(2020, 10, 4)]
如何?
是不是代码很短,但是又满足了要求,这个网站提供了很多,并且还有很多人在贡献自己的代码,一直在更新。感兴趣的小伙伴可以去看看~
废话不多说,上地址:
https://github.com/30-seconds/30-seconds-of-code
来源:GitHub(侵删) 图片:网络(侵删)
DESIGNED BY ZOE · 2020