小编yeg*_*gle的帖子

使Flask-Login的login_required成为默认值的最佳方法

喜欢这个问题:最好的方法是让Django的login_required成为默认值

我现在正在使用Flask-Login的是login_required装饰器.反正有没有把它作为默认行为Flask

python flask

27
推荐指数
3
解决办法
9458
查看次数

Python3中非地图评估版的地图?

我正在尝试map在Python3中使用.这是我正在使用的一些代码:

import csv

data = [
    [1],
    [2],
    [3]
]

with open("output.csv", "w") as f:
    writer = csv.writer(f)
    map(writer.writerow, data)
Run Code Online (Sandbox Code Playgroud)

但是,因为map在Python3中返回一个迭代器,这段代码在Python3中不起作用(但在Python2中工作正常,因为该版本map总是返回一个list)

我目前的解决方案是list在迭代器上添加函数调用以强制进行评估.但它似乎很奇怪(我不关心返回值,为什么我应该将迭代器转换为列表?)

更好的解决方案?

python

19
推荐指数
3
解决办法
6831
查看次数

如何编写异常捕获代码在Python2.4中工作到Python3

反正有没有编写一个从python 2.4到python 3兼容的异常捕获代码?

喜欢这段代码:

# only works in python 2.4 to 2.7
try:
    pass
except Exception,e:
   print(e)

# only works in python 2.6 to 3.3
try:
    pass
except Exception as e:
    print(e)
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

是否可以定义指向引用的指针?

我正在读书C++ Primer,我注意到有一个声明说:

因为引用不是对象,所以它们没有地址.因此,我们可能没有定义指向引用的指针.

但我刚刚编写了一个示例代码,并表明可以创建一个指向引用的指针(d变量).

代码发布如下:

#include <iostream>
using namespace std;

int main(){
   int a = 1024;

   int &b = a; // a reference to int
   int &c = b; // a reference to another reference
   int *d = &b; // a pointer to a reference
   int *(&e) = d; // a reference to a pointer 

   a = 100;
   cout << b << endl;
   cout << c << endl;
   cout << *d << endl;
   cout << *e …
Run Code Online (Sandbox Code Playgroud)

c++ pointers reference

10
推荐指数
3
解决办法
2019
查看次数

Python:如何确定字符串中是否存在单词列表

给定一个列表["one", "two", "three"],如何确定每个单词是否存在于指定的字符串中?

单词列表很短(在我的情况下少于20个单词),但要搜索的字符串非常庞大(每次运行400,000个字符串)

我目前的实现用于re寻找匹配,但我不确定它是否是最佳方式.

import re
word_list = ["one", "two", "three"]
regex_string = "(?<=\W)(%s)(?=\W)" % "|".join(word_list)

finder = re.compile(regex_string)
string_to_be_searched = "one two three"

results = finder.findall(" %s " % string_to_be_searched)
result_set = set(results)
for word in word_list:
    if word in result_set:
        print("%s in string" % word)
Run Code Online (Sandbox Code Playgroud)

我的解决方案存在问题

  1. 它将搜索到字符串的结尾,尽管单词可能出现在字符串的前半部分
  2. 为了克服先行断言的限制(我不知道如何表达"当前匹配前的字符应该是非单词字符,或字符串的开头"),我在字符串I之前和之后添加了额外的空格需要被搜查.
  3. 前瞻断言引入的其他性能问题?

可能更简单的实施:

  1. 只需遍历单词列表并执行操作if word in string_to_be_searched.但如果你正在寻找"三个"它不能处理"三人组"
  2. 使用一个正则表达式搜索一个单词.我仍然不确定性能,以及多次搜索字符串的可能性.

更新:

我接受了Aaron Hall的回答/sf/answers/1520322751/,因为根据Peter Gibson的基准测试/sf/answers/1521953331/这个简单的版本具有最佳性能.如果您对此问题感兴趣,可以阅读所有答案并获得更好的视图.

实际上我忘记在我原来的问题中提到另一个约束.这个词可以是一个短语,例如:word_list = ["one day", "second day"].也许我应该问另一个问题.

python regex

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

web.py:如何获取POST参数和GET参数?

我是新手web.py.我用了很多PHP.在PHP中,POST参数和GET参数存储在不同的全局变量中

例如:

curl http://127.0.0.1/test?get_param1=1 -d 'post_param1=2'

在PHP中,你可以获得$_GET['get_param1']1和$_POST['post_param1']2.

但似乎无法区分GET/POST参数web.py

我只能用于web.input()在类似dict的对象中获取GET/POST参数,但我无法分辨哪些来自查询字符串,哪些来自POST数据

python web.py web

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

LaTeX参考和Makefile

我正在使用Makefile.tex文件生成PDF .

在我的LaTeX文件中使用引用时.有时我得到类似的东西

LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.

我知道重新运行LaTeX编译命令可以修复这个引用问题,但在我的Makefile,%.pdf只依赖于%.tex,因此只是make再次运行不能解决问题(.tex文件中没有任何改变).我需要再做一次make clean重新生成PDF.

这是我的 Makefile

TEX := $(wildcard *.tex)
default: $(TEX:.tex=.pdf)
%.pdf: %.tex
    xelatex $<
.PHONY: clean
clean:
    rm -v *.aux *.toc *.log *.out
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题呢?谢谢.

更新:

以下是我从谷歌发现的一些想法

  1. default目标改为a .PHONY.这不是一个很好的解决方案(因为那里可能有乳胶文件,我只需要重新编译一个文件)
  2. 改变%.pdf对依赖的依赖%.aux.但我不知道GNU make是否可行?(取决于%.aux文件是否存在,否则忽略依赖%.aux)
  3. 做一个grep.log文件并找到特定的警告.如果存在,请重新运行compile命令.

latex makefile

8
推荐指数
2
解决办法
2561
查看次数

PyPy构建过程中的输出是什么意思?

在构建阶段PyPy,脚本会生成一些非常有趣的ASCII字符.每个角色代表什么?如何解释这个输出?在制作这种ASCII艺术时,PyPy构建的是什么?

PyPy构建的输出

pypy

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

拆分Django项目的"admin.py"?

我正在尝试将admin.pyDjango项目拆分为单独的文件但失败了.

我没有从谷歌找到有关如何分割它的信息,所以我必须自己尝试.这是我试过的:

  1. 创建一个名为的目录separated_admins__init__.py在其中放入一个空
  2. separated_admins目录中创建文件,如下所示:

    # file my_app/seperated_admins/Some_Model_admin.py
    
    from my_app.models import Some_Model
    from django.contrib import admin
    
    admin.site.register(Some_Model)
    
    Run Code Online (Sandbox Code Playgroud)
  3. admin.py,我添加了如下行:

    from my_app.seperated_admins import *
    
    Run Code Online (Sandbox Code Playgroud)

但我没有Some_Model在我的管理网站上看到.我的解决方案对吗?我怎样才能解决这个问题?

python django

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

如何获取要在python deque中丢弃的项目?

假设我们有一个dequemaxlen=3。如果deque已经有3个物品,而当我append有一个新物品时,如何获得将要丢弃的物品?

原因是我想在内存中维护一个仅包含最后N个项目的窗口,并且当该窗口已满并且要丢​​弃一个项目时,我需要获取该项目并做一些额外的工作。

这是我当前的解决方案:

from collection import deque

MAX_LEN=10

q = deque(maxlen=MAX_LEN)

while True:
    if len(q) == MAX_LEN:
        discarded = q.popleft()
        process(discarded)
    q.append(some_var)
Run Code Online (Sandbox Code Playgroud)

这是我能得到的最好的吗?我曾想过使用list切片列表来限制大小/丢弃物品,但这if是不可避免的。使用deque至少我可以O(1)在性能pushpopleft操作。

有任何想法吗?

python deque

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

标签 统计

python ×7

c++ ×1

deque ×1

django ×1

flask ×1

latex ×1

makefile ×1

pointers ×1

pypy ×1

python-3.x ×1

reference ×1

regex ×1

web ×1

web.py ×1