小编Bio*_*ett的帖子

为什么Python2中的某些代码确定性和Python 3中的非确定性?

我正在尝试编写一个脚本来计算所有可能的模糊字符串匹配匹配到一个短字符串,或'kmer',并且在Python 2.7.X中工作的相同代码给了我一个非确定性的答案与Python 3.3 .X,我无法弄清楚为什么.

我在我的代码中遍历字典,itertools.product和itertools.combinations,但我迭代完所有这些完成而没有中断或继续.另外,我将所有结果存储在一个单独的字典中,而不是我正在迭代的字典中.简而言之 - 我没有犯任何明显的错误,为什么Python2和Python3之间的行为有所不同?

示例,稍微简化的代码如下:

import itertools

def find_best_fuzzy_kmer( kmers ):
    for kmer, value in kmers.items():
        for similar_kmer in permute_string( kmer, m ):
            # Tabulate Kmer

def permute_string( query, m ):
    query_list = list(query)
    output = set() # hold output
    for i in range(m+1):
        # pre-calculate the possible combinations of new bases
        base_combinations = list(itertools.product('AGCT', repeat=i))
        # for each combination `idx` in idxs, replace str[idx]
        for positions in itertools.combinations(range(len(query_list)), i):
            for bases in base_combinations:
                # Generate Permutations …
Run Code Online (Sandbox Code Playgroud)

python string bioinformatics non-deterministic python-3.x

22
推荐指数
1
解决办法
1763
查看次数

来自wikibooks.org的二叉树比较的F#/ FSharp通用类型

我正在尝试在Fsharp中实现一个基本的红/黑树,基于公共代码(http://en.wikibooks.org/wiki/F_Sharp_Programming/Advanced_Data_Structures)

但是我在编译时遇到了最终签名的问题:

type 'a BinaryTree(inner : 'a tree) =
    member this.head = Tree.head inner
    member this.left = BinaryTree(Tree.left inner)
    member this.right = BinaryTree(Tree.right inner)
    member this.exists item = Tree.exists item inner
    member this.insert item = BinaryTree(Tree.insert item inner)
    member this.print() = Tree.print 0 inner
    static member empty = BinaryTree<'a>(E)
Run Code Online (Sandbox Code Playgroud)

具体来说,它给了我一个错误,"一个类型参数缺少一个约束'a when:comparison'"但是我尝试添加它的每件事都没有用.我错过了什么?

generics f#

1
推荐指数
1
解决办法
144
查看次数