Chinaunix
标题:
菜鸟求助: 大家帮忙看下这段代码!!!
[打印本页]
作者:
tank064
时间:
2013-01-30 16:58
标题:
菜鸟求助: 大家帮忙看下这段代码!!!
def comb(items, n=None):
if n is None:
n = len(items)
for i in range(len(items)):
v = items[i:i+1]
if n == 1:
yield v
else:
rest = items[i+1:]
for c in comb(rest, n-1):
yield v + c
for x in comb('abc'):
print x
复制代码
只输出了abc
昨天接触了yield ,所以学习一下,学得过程中 看到了这段代码,来自
http://code.activestate.com/recipes/474124/
说是求 组合的! 我周围没朋友学python,所以我上这来问了!
不知是这段代码不对,还是我对这段代码的功能理解错了,请指正!!!
作者:
crifan
时间:
2013-01-31 11:23
可参考:
【整理】Python中的yield用法
中提到的:
Python yield 使用浅析
作者:
winway1988
时间:
2013-02-01 10:51
本帖最后由 winway1988 于 2013-02-01 10:53 编辑
[winway@s211 test]$ cat test.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
def comb(items, n=None):
if n is None:
n = len(items)
for i in range(len(items)):
v = items[i:i+1]
if n == 1:
yield v
else:
rest = items[0:i] + items[i+1:]
for c in comb(rest, n-1):
yield v + c
for x in comb('abc'):
print x
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2