生成3码序列的最优雅方式

大家好, 我希望生成一系列" AAA"," AAB",AAC'...." ABA"的序列 " abb','abc'等.一直到" zzz". 您将如何构建发电机来实现这一目标? 一个简单,有效但有点不高的解决方案是... alpha = ['a','b','c','d'] #shorted for Brevity alpha2 = ['a','b','c','d'] alpha3 = ['a','b','c','d'] Def Generator(): 对于Alpha的Char: 对于alpha2中的char2: 对于alpha3中的char3: 收益char + char2 + char3 x = generate() x.next()#etc,等等,

# 回答1

罗布·考伊(Rob Cowie)写道: 导入字符串 alpha = string.lowercase Def Generator(选择,长度): 对于选择: 如果长度> 1: 对于发电机中的G(选择,长度1): 产生A + G 别的: 产生 对于发电机(Alpha,3): 打印 - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答2

罗布·考伊(Rob Cowie)写道: 触摸效率更高: 导入字符串 alpha = string.lowercase Def Generator(选择,长度): 长度 - = 1 对于选择: 如果长度: 对于发电机中的G(选择,长度): 产生A + G 别的: 产生 对于发电机(Alpha,3): 打印 - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答3

" Rob Cowie" 在消息中写道 新闻:11 ********************************@h76g2000cwa.googlegr oups.com ... 基本上很好,但是您只需要一个字符串. 例如., alpha =" abcd" 使用了三次. 艾伦·艾萨克
# 回答4

在2006-06-09,Rob Cowie 写道: 为什么要三个单独的列表? 为什么不 alpha = ['a','b','c','d'] #shorted for Brevity Def Generator(): 对于Alpha的Char: 对于alpha中的char2: 对于Alpha中的Char3: 收益char + char2 + char3 - - 格兰特·爱德华兹·格兰特·尤! 我想我是一个 在一夜之间 Visi.com现在!
# 回答5

罗布·考伊(Rob Cowie)在2006年10月6日上午7:49写道: | >> def Generator(): ....导入字符串 .... alpha = string.ascii_lowercase ....对于Alpha的Char: ....对于alpha中的char2: ....对于alpha中的char3: ....收益char + char2 + char3 ... | >> X = Generator() | >> the_lot = list(x) | >> len(the_lot)== 26 ** 3 真的 | >> [the_lot [i] for I in(0、1、25、26,-27,-26,-1)] ['aaa','aab','aaz','aba','zyz','zza','zzz'] 干杯, 约翰
# 回答6

alpha = string.lowercase x =(a+b+c for A in Alpha for Alpha in Alpha中的b in Alpha中的B)
# 回答7

罗布·考伊(Rob Cowie)写道: 效率更高. 导入字符串 alpha = string.lowercase Def Generator(选择,长度): 长度 - = 1 如果长度: 对于选择: 对于发电机中的G(选择,长度): 产生A + G 别的: 对于选择: 产生 对于发电机(Alpha,3): 打印 - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答8

赢家是...:D 戴维·艾萨克(David Isaac)写道:( _@_) Superhik写道: 不一定要争夺获奖者,但大卫的解决方案很高 具体特定,因为它对类似 .. .. .. Zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 詹姆士 - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答9

约翰·马奇(John Machin)写道:希望您能正确记住字母. 不确定我明白你的意思. 我为什么忘记字母? 为什么要输入所有标点符号? 什么标点符号? 该巡航是全局的任何原因(即发电机的本地)? 不 再次,我不明白你的意思 如3、4和5空间压痕. 再一次,你的意思是什么? 是的,犯了一个错误| >> def generator():...导入字符串... alpha = string.ascii_lowercase ... for ach in alpha中的char:... for Alpha中的char2:... in alpha中的char3: ...收益char + char2 + char3 ... | >> x = generator()| >> the_lot = list(x)| >> len(the_lot)== 26 ** 3 true | >> [the_lot [i the_lot [i ] for In(0、1、25、26,-27,-26,-1)] ']欢呼,约翰 我知道我发布的代码不是很好 - 这不是我会的代码 考虑使用. 它仅是为了作为说明 如果我的解释还不够,手头的任务. 我感谢您在您的示例中使用列表(生成器). 我曾是 不知道这可以做到(我还没有完全阅读发电机 文档). Rob C
# 回答10

罗布·考伊(Rob Cowie)写道:什么标点符号? ['','',',''] ['','',','',''] ['','',',','] (另请参见David Isaac的帖子)
# 回答11

罗伯·考伊(Rob Cowie)在2006年10月6日下午7:01写道:希望您记得正确的字母. 不确定我明白你的意思. 我为什么忘记字母? ....还是错误? 如果您使用string.ascii_lowercase,您的读者知道 未经检查的目的是实际上. 请参阅EFFBOT的帖子. 要点是,不应给出更广泛的可见性 比需要. 方便的副作用是更有效地 参考本地比全局的名称(必须在一个全局名称中查找 字典). 再次,我不明白你的意思 您只需要一个alpha,而不是3.否则您的读者必须比较 alpha至alpha2和alpha2 to alpha3以确定您尚未输入打字. 如3、4和5空间压痕. 再一次,你的意思是什么? 4空间凹痕或多或少是标准的. 2空间凹痕是 绝对没有帮助快速理解Python代码. 是的,犯了一个错误| >> def generator():...导入字符串... alpha = string.ascii_lowercase ... for ach in alpha中的char:... for char2 in alpha in alpha:... for ch alpha中的AR3:...产量char + char2 + char3 ... | >> x = generator()| >> the_lot = list(x)| >> len(the_lot)== 26 ** 3 true | >> [the_lot [i]为i in(0,1,1,25,26,-27,-26,-1)] ','zzz']欢呼,约翰我知道我发布的代码不是很好 - 这不是我考虑使用的代码. 如果您不考虑使用它,请不要将其拖放到公共场所. 一些 N00B可能认为这是良好风格的缩影:-) 它仅旨在作为手头任务的说明,以防我的解释还不够. 我感谢您在您的示例中使用列表(生成器). 我不知道这可以做到(我还没有完全阅读发电机文档). 发电机是一种觉得. list(),sum(),max(),min(),枚举(), zip()等在迭代上工作. 这就是那么简单,而且强大. 您可能还对Itertools标准模块感兴趣. 干杯, 约翰
# 回答12

. . 正确的. 但这不是问题:P James
# 回答13

詹姆斯·斯特劳德(James Stroud)写道: 触摸更有效:导入字符串alpha = string.string.lowercase def Generator(选择,长度):长度 - = 1 in Choce:如果长度:对于Generator中的G(选择,长度):产生A + G else:产生A 对于发电机(Alpha,3):打印 坦率地说,这似乎没有比原始的更优雅,尤其是 一旦使用一个字符串. 问候 史蒂夫 - - 史蒂夫·霍顿+44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com 爱我,爱我的博客http://holdenweb.blogspot.com 最近的漫步http://del.icio.us/steve.holden
# 回答14

. . 您不能通过要求金牌证明解决方案...请参阅 主题行 :-) 问候 史蒂夫 - - 史蒂夫·霍顿+44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com 爱我,爱我的博客http://holdenweb.blogspot.com 最近的漫步http://del.icio.us/steve.holden
# 回答15

. . 正确的. 但这不是问题:P 高度具体 - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答16

史蒂夫·霍顿(Steve Holden)写道: 触摸更有效:导入字符串alpha = string.string.lowercase def Generator(选择,长度):长度 - = 1 in Choce:如果长度:对于Generator中的G(选择,长度):产生A + G else:产生A 对于发电机(Alpha,3):坦率地打印出来,这似乎并不比原始版本更优雅,尤其是一旦使用了单个字符串. 关于史蒂夫 您确定每个人都知道吗? - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答17

. . 不一定争夺胜利者 - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答18

詹姆斯·斯特劳德(James Stroud)写道:对. 但这不是问题:P高度具体 唯一的问号是这句话,我相信我回答了. 您将如何构建发电机来实现这一目标? - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答19

史蒂夫·霍尔顿(Steve Holden)写道:您不能按要求镀金...请参阅主题行:-) 请参阅实际问题: 您将如何构建发电机来实现这一目标? - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答20

我不确定您是否有一个很好的答案. 我太懒了 查找我找到的页面...但是 - 查看http://aspn.activestate.com/aspn/sea...ype = subsection 大量的食谱...我个人喜欢动态的食谱 产生了一个嵌套功能 - 只是因为它很酷 - 一个3个元素排列. 否则,一个简单的嵌套发生器是 非常适合此解决方案. 实际上您可以使用发电机 函数生成器向您展示发电机函数应该看起来什么 喜欢 - 尝试说五次FAS t. Rob Cowie写道:( _@_) 2006/6/10,superhik :对. 但这不是问题:P 问题是关于优雅的,优雅是有人问"做 5个长度3英寸的串4次,您可以解决" 长度为p的n次n次" :) - - Roberto Bonvallet
# 回答21

詹姆斯·斯特劳德(James Stroud)写道: 如果您不认为主题行和 问题之前的句子很重要,如何确定什么 "这个"是指的?
# 回答22

弗雷德里克·伦德(Fredrik Lundh)写道: 如果您不认为问题行提供的上下文和问题之前的句子很重要,那么您如何确定"这"是什么意思? 我感觉到"正确"的答案与 正确性(即工作代码),但以"优雅"的一些模糊概念. 请把我指向精确定义的代码优雅的页面 我可以适当地构建答案. 是的,我太懒了 Google"代码优雅". 詹姆士 - - 詹姆斯·斯特劳德 UCLA-DOE基因组学研究所 Box 951570 洛杉矶,CA 90095 http://www.jamesstroud.com/
# 回答23

我发现代码越优雅,对我来说越难 了解它要完成的工作. 我认为 "保持简单"赢得优雅. 当我有渴望 优雅,我确保评论优雅,以便我不那么优雅 同事可以找出我要完成的工作. 山姆·舒伦堡 詹姆斯·斯特劳德(James Stroud)写道: 如果您不认为问题行提供的上下文和问题之前的句子很重要,那么您如何确定"这"是什么意思? 我感到"正确"的答案与正确性(即工作代码)无关,而是关于"优雅"的一些模糊概念. 请把我指向精确定义的代码优雅的页面,以便我可以适当地构建答案. 是的,我太懒了,无法Google"代码优雅". 詹姆斯 - 詹姆斯·斯特劳德加州大学洛杉矶分校基因组学和蛋白质组学研究所951570洛杉矶,加利福尼亚州90095 http://www.jamesstroud.com/
# 回答24

山姆写道: +1 Petr Jakes
# 回答25

约翰·马奇(John Machin) (剪) 为什么要在两个空间停下来? 单空间缩进在语法上是正确的:-) 我经常在此处发布2个空间缩进,以避免问题 用包装.
# 回答26

. . 和 ? 它是要的吗? 我是从大卫的解决方案开始的个人开头 - IOW:最简单的事情 可以PO 可行的工作 - ,只有/何时我会更加通用 具有更通用解决方案的用例. 过早的概括是所有邪恶的根源! - )

标签: python

添加新评论