小编Ram*_*pte的帖子

*具有持久性存储的大型*python字典,可快速查找

我有4亿行独特的键值信息,我希望能够在脚本中快速查找.我想知道这样做的方式是什么.我确实考虑了以下但不确定是否有一种磁盘映射字典的方法,并且除了在字典创建期间没有使用大量内存.

  1. 腌制字典对象:不确定这是否是我的问题的最佳解决方案
  2. NoSQL类型dbases:理想情况下需要对第三方内容具有最小依赖性的东西加上键值只是数字.如果你觉得这仍然是最好的选择,我也想听听.可能它会说服我.

如果有任何不清楚的地方,请告诉我.

谢谢!-Abhi

python persistence object-persistence

22
推荐指数
4
解决办法
8757
查看次数

在python中获取第n行字符串

如何在Python 3中获得字符串的第n行?例如

getline("line1\nline2\nline3",3)
Run Code Online (Sandbox Code Playgroud)

有没有办法使用stdlib/builtin函数?我更喜欢Python 3中的解决方案,但Python 2也没问题.

python python-3.x

9
推荐指数
4
解决办法
2万
查看次数

如果value为true,则退出两个for循环

我将如何完成以下任务?

for (x=0;x<3;x++) {
    for (y=0;y<3;y++) {
        if (z == 1) {
            // jump out of the two for loops
        }
     }
}
// go on to do other things
Run Code Online (Sandbox Code Playgroud)

如果z = 1,则两个for循环都应该停止,并且应该继续使用其他一些代码.这显然是我想要完成的一个过于简单的例子.(换句话说,我知道我需要初始化变量等...)

c loops

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

如何使用python生成器表达式创建oneliner以多次运行函数并获取列表输出

我想知道是否有一个简单的Pythonic方式(可能使用生成器)在列表中的每个项目上运行一个函数,并产生一个返回列表?

例:

def square_it(x):
    return x*x

x_set = [0,1,2,3,4]
squared_set = square_it(x for x in x_set)
Run Code Online (Sandbox Code Playgroud)

我注意到,当我对此进行逐行调试时,传递给函数的对象是生成器.

因此,我收到一个错误: TypeError: unsupported operand type(s) for *: 'generator' and 'generator'

我知道这个生成器表达式创建了一个传递给函数的生成器,但我想知道是否有一种很酷的方法来完成多次运行该函数只能通过指定一个iterable作为参数?(不修改函数以期望迭代).

在我看来,这种能力对于减少代码行非常有用,因为你不需要创建一个循环来使函数变得有趣,而一个变量将输出保存在列表中.

谢谢!

python iterator generator generator-expression

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

如何让画廊像书中的纸一样?

我是Android新手.我正在尝试制作图库视图,就像在书中翻页一样.所以请给我一些建议.

android

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

如何在 Python 中的某个点重新启动程序

所以我今天做了一个非常原始而且可能效率低下的计算器(第一次使用Python),我希望能够继续做更多的问题,我该怎么做?这是我的“计算器”应用程序..

import time
print ("Welcome. This is a calculator that uses the function: A (operator) B.")
time.sleep(3.5)
print ("Available operators include: Addition, Subtraction, Multiplication, Division,        Exponent, and Remainder division.")
time.sleep(3.5)
a = float(input("Type in a value of A. "))
b = float(input("Type in a value of B. "))
operb = input("Would you like to: Add - Subtract - Multiply - Divide - Exponent - or Remainder? ")
opera = operb.lower()
if (opera) == "add":
    print ((a) + (b))
elif (opera) …
Run Code Online (Sandbox Code Playgroud)

python calculator python-3.x

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

尝试输入字符串时出现名称错误

import pickle
import os
import time

class Person():
    def __init__(self, number, address):
        self.number = number
        self.address = address


def save():
    with open('mydict.pickle', 'wb') as f:
        pickle.dump(mydict, f)        

mydict = {}
mydict['Avi'] = ['347-000-0000', 'Oceanview']
mydict['Alan'] = ['347-000-0000', 'Brighton']
mydict['Frank'] = ['718-000-0000', 'Brighton']

print('add a name to the database.')
name = input('Name:')
number = input('Digits:')
address = input('Address:')
mydict[name] = [number, address]

-------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

错误:如果我尝试向数据库添加名称,我会得到一个名称错误.NameError:未定义名称'alan'.奇怪的是,字符串不起作用,但数字会起作用.对不起,如果我的问题不清楚.

Traceback (most recent call last):
  File "C:/Python33/ss", line 21, in <module>
    name = input('Name:')
  File "<string>", line …
Run Code Online (Sandbox Code Playgroud)

python addressbook nameerror python-3.x

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

关于makefile如何工作的说明?

我发现一个makefile 这里一边念叨自动工具.

我从来没有使用像这样的makefile,我自己尝试过.
我写的makefile的内容是:

all: HelloWorld

clean:
    rm -f HelloWorld *.o
Run Code Online (Sandbox Code Playgroud)

包含makefile的文件夹只包含一个文件HelloWorld.c.

make以下输出成功运行:

$> make
cc     HelloWorld.c   -o HelloWorld
Run Code Online (Sandbox Code Playgroud)

现在,我想尝试,并在makefile我改名为目标allHelloWorl.这次make失败并出现以下错误:

$> make
make: *** No rule to make target `HelloWorl', needed by `all'.  Stop.
Run Code Online (Sandbox Code Playgroud)

请解释make自动搜索和编译源的这种行为.

我的理解是它通过附加.c并使用默认cc编译器编译来从目标名称创建源名称.

c makefile autotools

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

覆盖HTTP响应状态文本

如何在Tomcat 7中覆盖的文本HttpStatu

我正在使用HttpServletResponse.sendError(401, "Invalid username or Password"),但是当我查看客户端中的响应状态时,它就会出错401 Unauthorized

有什么方法可以覆盖它吗?

java tomcat servlets httpresponse

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

如何运行pyuic4生成的程序?

我是 PyQt 的新手,虽然我对 Python 有所了解。我想使用 Qt 设计器进行 GUI 编程,因为它会让我的工作更轻松。我在 Qt 设计器中进行了一个简单的对话框,并使用 pyuic4 进行了转换。

from PyQt4 import QtCore, QtGui

class Ui_Form1(object):
    def setupUi(self, Form1):
        Form1.setObjectName("Form1")
        Form1.resize(495, 364)
        self.listWidget = QtGui.QListWidget(Form1)
        self.listWidget.setGeometry(QtCore.QRect(60, 100, 221, 111))
        self.listWidget.setObjectName("listWidget")
        self.lineEdit = QtGui.QLineEdit(Form1)
        self.lineEdit.setGeometry(QtCore.QRect(60, 250, 221, 26))
        self.lineEdit.setObjectName("lineEdit")
        self.pushButton = QtGui.QPushButton(Form1)
        self.pushButton.setGeometry(QtCore.QRect(350, 170, 92, 28))
        self.pushButton.setAutoDefault(False)
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Form1)
        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.listWidget.clear)
        QtCore.QMetaObject.connectSlotsByName(Form1)

    def retranslateUi(self, Form1):
        Form1.setWindowTitle(QtGui.QApplication.translate("Form1", "Form1", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Form1", "X", None, QtGui.QApplication.UnicodeUTF8))
Run Code Online (Sandbox Code Playgroud)

我想运行这个程序。如何通过导入这个文件来运行这个程序?我知道这是一个非常基本的问题。

python qt pyqt qt-designer

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

功能"fread"导致分段错误

我对此感到不安fread; 这是非常基础的,但我无法找到答案.

#include <stdio.h>
#include <stdlib.h>
void main () 
{
    int i;
    FILE *fp;
    char *re;
    fp = fopen("/net2/192.168.42.151/stud3/2013/dobo1298/data.txt","r");
    i = sizeof(char);
    printf("%d",i);
    re = calloc(10,i);
    fread(re,i,1,fp);
    printf("%s",*re);
}
Run Code Online (Sandbox Code Playgroud)

c sizeof fread

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