前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >今日推荐:30-seconds-of-code

今日推荐:30-seconds-of-code

作者头像
仇诺伊
发布2021-06-10 17:06:17
4240
发布2021-06-10 17:06:17
举报
文章被收录于专栏:佳爷的后花媛佳爷的后花媛

2021.5.14 周五

留●白

沉思 浮躁

今日推荐

来看看能满足需求的简短代码:

这个网站有很多精简的代码,实现了想要的效果,以python为例:

example 1: 使用迭代器函数和初始种子值构建列表。

迭代器函数接受一个参数,并且必须始终返回包含两个元素([value,nextSeed])或False的列表以终止。使用生成器函数fn_generator,该函数使用while循环调用迭代器函数并产生该值,直到返回False。使用列表推导,使用迭代器函数返回由生成器生成的列表。

代码语言:javascript
复制
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应用于指定的属性。

代码语言:javascript
复制
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对象的列表。

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 佳爷的后花媛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档