【发布时间】:2019-04-20 08:10:22
【问题描述】:
我收到了这个作业问题,在参加了 udemy 课程后,我仍然不知道如何解决它。 是关于yield、next和send的。
这是我需要做的: 指导:
- 使用
itertools.permutations生成列表的所有排列,并将它们存储在一个 排列列表 - 使用
list.sort()对排列列表进行排序 - 在遍历排列列表时使用
yield关键字 - 检查
yield语句是否获得了输入列表,如果是,则清空排列列表并重复步骤2
下面是我试过的代码,它不支持发送功能,继续使用旧的 LIST。
def permute(items):
permu_list = [perm for perm in pr(items)]
permu_list.sort()
for x in permu_list:
yield x
这是结果示例:
>>> g = permute(['b', 'a', 'c'])
>>> next(g)
('a', 'b', 'c')
>>> next(g)
('a', 'c', 'b')
>>> g.send(['e', 'q', 'c'])
('c', 'e', 'q')
>>> next(g)
('c', 'q', 'e')
【问题讨论】:
-
Ty 寻求帮助。怎么做?我有点难以理解整个发电机的事情。