小编xyz*_*123的帖子

具有独特价值的排列

itertools.permutations根据其位置而不是其值来生成其元素被视为唯一的位置.所以基本上我想避免重复这样的:

>>> list(itertools.permutations([1, 1, 1]))
[(1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)]
Run Code Online (Sandbox Code Playgroud)

之后进行过滤是不可能的,因为在我的情况下排列量太大了.

有人知道合适的算法吗?

非常感谢你!

编辑:

我基本上想要的是以下内容:

x = itertools.product((0, 1, 'x'), repeat=X)
x = sorted(x, key=functools.partial(count_elements, elem='x'))
Run Code Online (Sandbox Code Playgroud)

这是不可能的,因为sorted创建一个列表并且itertools.product的输出太大.

对不起,我应该已经描述了实际问题.

python permutation python-itertools

68
推荐指数
7
解决办法
3万
查看次数

numpy反向多维数组

numpy中最简单的方法是反转数组的最内部值,如下所示:

array([[[1, 1, 1, 2],
    [2, 2, 2, 3],
    [3, 3, 3, 4]],

   [[1, 1, 1, 2],
    [2, 2, 2, 3],
    [3, 3, 3, 4]]])
Run Code Online (Sandbox Code Playgroud)

这样我得到以下结果:

array([[[2, 1, 1, 1],
    [3, 2, 2, 2],
    [4, 3, 3, 3]],

   [[2, 1, 1, 1],
    [3, 2, 2, 2],
    [4, 3, 3, 3]]])
Run Code Online (Sandbox Code Playgroud)

非常感谢你!

python numpy multidimensional-array

19
推荐指数
1
解决办法
2万
查看次数

动态创建类属性

我需要从DEFAULTS字典动态创建类属性.

defaults = {
    'default_value1':True,
    'default_value2':True,
    'default_value3':True,
}

class Settings(object):
    default_value1 = some_complex_init_function(defaults[default_value1], ...)
    default_value2 = some_complex_init_function(defaults[default_value2], ...)
    default_value3 = some_complex_init_function(defaults[default_value3], ...)
Run Code Online (Sandbox Code Playgroud)

我也可以通过某事来实现这个目标.喜欢__init__用于类创建,以便从字典中动态创建这些属性并保存大量代码和愚蠢的工作.

你会怎么做?

非常感谢你提前!

python class-attributes

15
推荐指数
2
解决办法
1万
查看次数

OSError 38 [Errno 38]具有多处理功能

我有以下错误:

$ sudo chmod a+rwxt /dev/shm/
$ ls -ld /dev/shm/
drwxrwxrwt 2 root root 4096 Feb  4 06:56 /dev/shm/
$ python
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import multiprocessing
>>> mp = multiprocessing.Pool(2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/multiprocessing/__init__.py", line 227, in Pool
    return Pool(processes, initializer, initargs)
  File "/usr/lib/python2.6/multiprocessing/pool.py", line 84, in __init__
    self._setup_queues()
  File "/usr/lib/python2.6/multiprocessing/pool.py", line 131, …
Run Code Online (Sandbox Code Playgroud)

python linux multiprocessing

14
推荐指数
2
解决办法
1万
查看次数

(py)开罗 - 填充

有没有办法填充闭合路径(多边形)之外的所有内容?

背景:我想用海岸线渲染一些地图 - 所以有时我需要用蓝色填充海洋,所以我认为用蓝色填充海岸线多边形之外的所有内容是最简单的,在我的情况下也是最有效的颜色。

提前致谢!

python cairo pycairo

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

Python ctypes和librsvg出错

我正在尝试用Python的ctypes包装librsvg的基本功能,但我得到了一个段错误.

C:

// pycairo excerpt
typedef struct {
  PyObject_HEAD
  cairo_t *ctx;
  PyObject *base; /* base object used to create context, or NULL */
} PycairoContext;

// librsvg excerpt
RsvgHandle * rsvg_handle_new_from_file (const gchar * file_name, GError ** error);
// ...
gboolean rsvg_handle_render_cairo (RsvgHandle * handle, cairo_t * cr);
Run Code Online (Sandbox Code Playgroud)

Python ctypes:

from ctypes import *
from ctypes import util


librsvg = cdll.LoadLibrary('/brew/lib/librsvg-2.2.dylib')
libgobject = cdll.LoadLibrary('/brew/lib/libgobject-2.0.dylib')

libgobject.g_type_init()


class RSVGDimensionData(Structure):

    _fields_ = (
        ('width', c_int),
        ('height', c_int),
        ('em', c_double),
        ('ex', c_double)
    )

class …
Run Code Online (Sandbox Code Playgroud)

python ctypes cairo librsvg pycairo

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

XPath:匹配一个表达式中的多个元素

我正在尝试这样做(使用lxml):

//*[@id="32808345" or @id="33771423" or @id="15929470" or @id="33771117" or @id="15929266"]
Run Code Online (Sandbox Code Playgroud)

为了获得所有元素,无论标记是什么,都具有指定的id.我得到以下回溯:

invalid attribute predicate
Run Code Online (Sandbox Code Playgroud)

这就是我生成str的方式(如果这与问题相关):

refs = ' or '.join('@id="%s"' % ref for ref in refs[0:5])
elements = etree.iterfind('//*[%s]' % refs)
Run Code Online (Sandbox Code Playgroud)

编辑,使用以下解决方案我收到此错误:

File "lxml.etree.pyx", line 1201, in lxml.etree._Element.iterchildren (src/lxml/lxml.etree.c:36294)
  File "lxml.etree.pyx", line 2163, in lxml.etree.ElementChildIterator.__init__ (src/lxml/lxml.etree.c:45331)
  File "lxml.etree.pyx", line 2118, in lxml.etree._ElementTagMatcher._initTagMatch (src/lxml/lxml.etree.c:44913)
  File "apihelpers.pxi", line 1413, in lxml.etree._getNsTag (src/lxml/lxml.etree.c:21412)
ValueError: Empty tag name
Run Code Online (Sandbox Code Playgroud)

python xpath lxml

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

C结构赋值可以使用大括号语法吗?

可能重复:
C/C++编程语言的struct初始化?

我正在重新学习C并且问自己这样的事情是否可行:

typedef struct Link {
    struct Node a;
    struct Node b;
    float weight;
    } Link;

Link links[LINK_NUMBER];
links[0] = {nodes[0], nodes[1], 5};
Run Code Online (Sandbox Code Playgroud)

代替:

Link link0 = {nodes[0], nodes[1], 5};
links[0] = link;
Run Code Online (Sandbox Code Playgroud)

c struct

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

Python数据结构设计

数据结构应满足以下目的:

  • 每个对象对于某些键值对是唯一的
  • 键和值不是预先确定的,可以包含任何字符串值
  • 查询对象应该很快

例:

  • object_123({'stupid':True, 'foo':'bar', ...})
  • structure.get({'stupid':True, 'foo':'bar', ...}) 应该回来 object_123

最佳地,该结构通过标准库提供的标准python数据结构来实现.

你会如何实现这个?

python data-structures

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

C++引用vs局部变量

假设我有一些对象,例如:

std::map<int, std::vector<double> > some_map;
Run Code Online (Sandbox Code Playgroud)

简单的问题:执行以下操作是否更有效

std::vector<double> vec = some_map[some_index];
Run Code Online (Sandbox Code Playgroud)

或参考它

std::vector<double>& vec = some_map[some_index];
Run Code Online (Sandbox Code Playgroud)

任何人都可以简单地解释一下幕后通常会发生什么?

首先十分感谢!

c++ memory reference

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