⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utils.py

📁 finite element library for mathematic majored research
💻 PY
字号:
__author__ = "Anders Logg (logg@simula.no)"__date__ = "2005-02-04 -- 2007-04-10"__copyright__ = "Copyright (C) 2005-2007 Anders Logg"__license__  = "GNU GPL version 3 or any later version"def pick_first(values):    "Check that all values are equal and return the value"    if not values[:-1] == values[1:]:        raise RuntimeError, "Values differ: " + str(values)    return values[0]def listcopy(l):    """Create a copy of the list, calling the copy constructor on each    object in the list (problems when using copy.deepcopy)."""    if not l:        return []    else:        return [object.__class__(object) for object in l]def permutations(l):    "Return a list of all permutations of the given list"    if len(l) < 1:        yield l    for i in range(len(l)):        pivot = l[i]        other = l[:i] + l[i+1:]        for p in permutations(other):            yield [pivot] + p    returndef compute_permutations(k, n, skip = []):    """Compute all permutations of k elements from (0, n) in rising order.    Any elements that are contained in the list skip are not included."""    if k == 1:        return [(i,) for i in range(n) if not i in skip]    pp = compute_permutations(k - 1, n, skip)    permutations = []    for i in range(n):        if i in skip:            continue        for p in pp:            if i < p[0]:                permutations += [(i, ) + p]    return permutationsdef indent(s, n):    "Indent each row of the given string s with n spaces"    indentation = " "*n    return indentation + ("\n" + indentation).join(s.split("\n"))def is_empty(elements):    """ Takes a possibly nested list of lists and returns true if all    are empty."""    # meg: If there is an easier/prettier way of doing this already,    # please replace this.    empty = True    for element in elements:        if isinstance(element, list):            empty = is_empty(element)        else:            if element: empty = False        if not empty: return False    return emptydef abbreviate(dict):    """ Removes key-value pairs of dictionaries where the value is a    False value such as []. Use with caution."""    d = dict.copy()    for key in d.keys():        if not d[key]: del d[key]    return dif __name__ == "__main__":    for p in permutations([0, 1, 2, 3]):        print p    text = """\logg@galerkin:~/work/src/fenics/ffc/ffc/src/ffc/common# lsconstants.py   debug.py       exceptions.pyc  progress.py   util.pyconstants.pyc  debug.pyc      __init__.py     progress.pyc  util.py.~1.2.~CVS            exceptions.py  __init__.pyc    #util.py#     util.pyc"""    print text    print indent(text, 2)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -