小编c00*_*ter的帖子

我可以在Python中将SQLite用于字符串而不是用于TEXT的unicode吗?

AFAIK SQLite TEXT在Python中返回unicode对象.是否有可能让SQLite返回字符串对象?

python sqlite string unicode

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

在Python中导入RPy2中的包时,如何禁止输出到控制台?

每当我import在Python中运行使用RPy2 导入包的脚本时,控制台中总会弹出一些额外的行.我粘贴在下面的一个例子中.我该怎样抑制这种行为?

CookieJar:r cookies$ python script.py 

    ‘tseries’ version: 0.10-24

    ‘tseries’ is a package for time series analysis and computational
    finance.

    See ‘library(help="tseries")’ for details.
Run Code Online (Sandbox Code Playgroud)

python r rpy2

3
推荐指数
2
解决办法
1267
查看次数

如何在PyQt中正确对齐右键单击上下文菜单?

使用下面的示例代码(受此处影响很大),右键单击上下文菜单并未真正正确对齐.

从屏幕截图中可以看出,生成的菜单位于鼠标光标上方.我希望菜单的左上角与鼠标指针完全对齐.

有什么方法可以调整吗?

菜单截图

import re
import operator
import os
import sys
import sqlite3
import cookies
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def main():
    app = QApplication(sys.argv)
    w = MyWindow()
    w.show()
    sys.exit(app.exec_())

class MyWindow(QWidget):
    def __init__(self, *args):
        QWidget.__init__(self, *args)

        self.tabledata = [('apple', 'red', 'small'),
                          ('apple', 'red', 'medium'),
                          ('apple', 'green', 'small'),
                          ('banana', 'yellow', 'large')]
        self.header = ['fruit', 'color', 'size']

        # create table
        self.createTable()

        # layout
        layout = QVBoxLayout()
        layout.addWidget(self.tv)
        self.setLayout(layout)

    def popup(self, pos):
        for i in self.tv.selectionModel().selection().indexes():
            print …
Run Code Online (Sandbox Code Playgroud)

contextmenu pyqt alignment

3
推荐指数
2
解决办法
4084
查看次数

为什么我会在C中按值传递函数参数?

我正在为我的一些C库工作的C技能除尘.在整理了第一个工作实现之后,我现在正在查看代码以提高它的效率.目前我的主题是通过引用或值传递函数参数.

我的问题是,为什么我会在C中按值传递任何函数参数?代码可能看起来更干净,但它不会总是比通过引用传递效率低吗?

c function pass-by-reference pass-by-value

3
推荐指数
2
解决办法
3375
查看次数

如何在R数据帧上执行SQL操作?

例如,我有一个数据框,其中包含跨类别和子类别的数据,我希望能够在特定列中获得具有最大值的行等.

SQL是首先想到的.但是因为我对连接或索引等不感兴趣,所以python的列表推导会用更现代的语法更好地做同样的事情.

对于此类操作,R的最佳做法是什么?

编辑:现在我觉得我很好which.max.为什么我问我这样做的问题只是因为我已经知道在R中有许多库等做同样的事情.只需阅读文档,就很难评估受欢迎程度(即图书馆达到目的的程度).我对Python的个人经验是,当你弄清楚如何使用列表推导(itertools作为奖励)的那一天,你几乎被覆盖了.随着时间的推移,这已经发展成为最佳实践,你没有看到lambda,filter例如,这些天经常在一般的python辩论中,因为列表推导使同样的事情变得更容易和更均匀.

sql r list-comprehension dataframe

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

如何在vim中基于增量搜索切换选项卡?

例如,假设我在vim中打开了三个选项卡:

1: nice_program.c
2: something_fun.h
3: super_script.sh
Run Code Online (Sandbox Code Playgroud)

因此,如果我点击一个魔术修饰键,然后输入'n'并按Enter键我将标签更改为标签1.同样,输入'su'将改为导航我到标签3.

这样的行为可能吗?有很多vim扩展,我真的没有得到整个vim扩展术语.

顺便说一下,我在XP上使用gVim,在OS X上使用MacVim.最好是解决方案适用于...

编辑:

请注意,我只希望增量搜索搜索打开的选项卡的名称.也就是说,它不应该在标签内部实际搜索.

此外,我从不使用缓冲区,它是我希望这个工作的选项卡.

vim performance tabs switching

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

为什么我不能用这种方式写入C中的结构数组?

我有一个以这种方式声明的结构数组:

typedef struct {
    int a;
    int b;
} buffer_t;

buffer = (buffer_t *) calloc(SIZE, sizeof(buffer_t));
Run Code Online (Sandbox Code Playgroud)

稍后在代码中我写这样:

buffer_t temp = buffer[id];
temp.a = new_a;
temp.b = new_b;
Run Code Online (Sandbox Code Playgroud)

但是当我这样写的时候似乎没有什么可以坚持下去的.如果我这样做:

buffer[id].a = new_a;
buffer[id].b = new_b;
Run Code Online (Sandbox Code Playgroud)

它工作得很好.

我在这做错了什么?我在这里错过了一些重要的部分吗?

(我的内循环中有这个代码所以我想尽可能高效...)

如果重要的话,我正在使用Visual C++ 2008.

c arrays struct

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

如何使用Numpy重复这一对2d对?

我有一个我想重复的数组.

test = numpy.array([(1, 11,), (2, 22), (3, 33)])

现在

numpy.repeat(test, 2, 0)
numpy.repeat(test, 2, 1)
Run Code Online (Sandbox Code Playgroud)

结果是

array([[ 1, 11],
       [ 1, 11],
       [ 2, 22],
       [ 2, 22],
       [ 3, 33],
       [ 3, 33]])
array([[ 1,  1, 11, 11],
       [ 2,  2, 22, 22],
       [ 3,  3, 33, 33]]).
Run Code Online (Sandbox Code Playgroud)

numpy.tile(test, 2)
Run Code Online (Sandbox Code Playgroud)

结果是

array([[ 1, 11,  1, 11],
       [ 2, 22,  2, 22],
       [ 3, 33,  3, 33]]).
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个结果呢?

array([[ 1, 11],
       [ 2, 22],
       [ 3, 33],
       [ …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy repeat

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

在C中返回"static char []"字符串是否合适?

我有一组函数都构建一个这样的日志字符串:

...
// Top level snprintf call
snprintf(buffer, BUFSIZ, "%s %s %s", dump_1(obj), dump_2(obj), dump_3(obj));
...

static char *dump_1(my_own_type_t obj)
{
        static char t1[BUFSIZ];
        // Logic printing obj data into t1
        return t1;
}

static char *dump_2(my_own_type_t obj)
{
        static char t2[BUFSIZ];
        // Logic printing obj data into t2
        return t2;
}

static char *dump_3(my_own_type_t obj)
{
        static char t3[BUFSIZ];
        // Logic printing obj data into t3
        return t3;
}
Run Code Online (Sandbox Code Playgroud)

这是一个很好的方法吗,还是有更好的方法来实现同样的事情?我可以使用动态分配的字符串,但后来我必须添加内存管理,这将使代码更复杂.我也可以传递缓冲区,然后直接写入缓冲区,但这意味着很多额外的snprintf调用,因为每次我想在字符串中添加内容时都必须调用snprintf.

编辑:在我的情况下,线程安全不是问题,并且日志记录调用不是可重入的.所以从理论上讲,我可以保持原样.然而,根据mcleod_ideafix的建议,以某种方式感觉更干净.这样我就不需要任何静态变量了,我仍然会将snprintf调用保持在最低限度.唯一的缺点是声明了很多本地缓冲区,但我觉得这在我的情况下是可控的.非常感谢所有的反馈.

c string

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