lintcode-2169 · 三个三个的生成数据
【摘要】 大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,邀你进群,一起学习交流前端,成为更优秀的工程师~关注公众号:半夏话前端,了解更多前端知识!点我探索新世界! 描述请编写 Python 代码,将一串数据作为模板数据,并根据模板数据使用生成器 3 个 3 个的生成指定条数的数据。请在 solution.py 中编...
大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,邀你进群,一起学习交流前端,成为更优秀的工程师~关注公众号:半夏话前端,了解更多前端知识!点我探索新世界!
描述
请编写 Python 代码,将一串数据作为模板数据,并根据模板数据使用生成器 3 个 3 个的生成指定条数的数据。
请在 solution.py
中编写创建生成器的代码,我们会在 main.py
中通过导入的方式运行你的代码,以检测你的代码是否实现了以上功能。
**
- 若模板数据不是 3 的倍数,则舍弃掉最后不足的数据重新从首位开始循环生成
- 若模板数据小于 3 个数,则直接将模板数据作为一条数据进行重复生成
样例
样例一:
当输入数据为:
[1,0,5,5,3,10,9,10,3,5,5,6,7,4,10,8,7,7,7]
7
输出数据为:
[1, 0, 5]
[5, 3, 10]
[9, 10, 3]
[5, 5, 6]
[7, 4, 10]
[8, 7, 7]
[1, 0, 5]
样例二:
当输入数据为:
[8,2,5,10,3,3,0,7,2,1,5,6,6,5,1,6,9]
10
输出数据为:
[8, 2, 5]
[10, 3, 3]
[0, 7, 2]
[1, 5, 6]
[6, 5, 1]
[8, 2, 5]
[10, 3, 3]
[0, 7, 2]
[1, 5, 6]
[6, 5, 1]
题解
首先,这道题是一道很简单的题目,这里需要判断,-
若模板数据不是 3 的倍数,则舍弃掉最后不足的数据重新从首位开始循环生成,这里对3进行求余数,判断是不是3的倍数,如果不是直接舍弃。
若模板数据小于 3 个数,则直接将模板数据作为一条数据进行重复生成。这里定义一个变量,每次生成的时候就直接把他加1累加,然后与输入的值进行比较,判断是否需要退出。
class DataLoader:
def __init__(self, data):
# write your code here
self.L1=[]
for i in data:
self.L1.append(i)
for i in range(len(self.L1)%3):
self.L1.pop()
def get_data(self):
# write your code here
j = 0
while True:
self.L=[]
if j>=len(self.L1)-1:
j = 0
for i in range(3):
self.L.append(self.L1[j])
j+=1
yield self.L
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)