小编Nie*_*Bom的帖子

检查给定键是否已存在于字典中并递增

给定一个字典,如何确定该字典中的给定键是否已设置为非None值?

即,我想这样做:

my_dict = {}

if (my_dict[key] != None):
  my_dict[key] = 1
else:
  my_dict[key] += 1
Run Code Online (Sandbox Code Playgroud)

即,我想增加值,如果已经存在,或者将其设置为1.

python dictionary

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

Python 2.x中的非本地关键字

我正在尝试在Python 2.6中实现一个闭包,我需要访问一个非局部变量,但似乎这个关键字在python 2.x中不可用.如何在这些版本的python中访问闭包中的非局部变量?

python closures python-2.x python-nonlocal

112
推荐指数
6
解决办法
4万
查看次数

如果没有编程(基本上没有条件)

我有一位同事告诉我,他曾经为一家公司工作,该公司的政策是在代码中永远不会有条件("if"和"switch"语句)并且他们让代码中的所有决策都使用多态性和(我猜)其他一些OO原则.

有点理解这背后的原因,让代码更干,更容易更新,但我正在寻找对这个概念的更深入的解释.或者它可能是更通用的设计方法的一部分.

如果任何人有任何资源或愿意解释甚至有更多与此相关的术语我可以用来找到更多的答案,我将非常感激.

我发现一个关于SO的问题有点相关但我不熟悉C++,所以我不太了解那里的答案.

(我不是OO guru btw,但我可以管理)

我最熟练的PHP,在那之后,我更喜欢那些使用这些语言的信息.

更新:我会问我的同事有关他的确切含义的更多信息.

2015年更新:经过多年的编程经验,我现在看到这个策略的目的可能是阻止程序员通过在某些地方添加条件(if语句)来随意添加功能.扩展软件的更好方法是使用"开放/封闭原则",其中使用继承和多态来扩展软件.我强烈怀疑这项政策是否对所有条件都非常严格,因为如果没有这些条件,这种政策就很难完全实现.

oop polymorphism conditional

65
推荐指数
5
解决办法
3万
查看次数

如何获取Python编译的选项列表?

您可以通过各种方式编译Python.我想知道我的Python编译的选项.

具体的用例:我的Python是用readline编译的吗?我知道我可以通过"import readline"来看到这个,但是我希望看到我的Python二进制文件的编译设置列表.

编辑:我的意思是Python可执行文件,而不是我自己编写的源代码.

python packages compilation

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

Javascript替换方法,替换为"$ 1"

我正在阅读Sitepoints 2007书籍"Simply Javascript",我遇到了一些我无法理解的代码.

它是以下代码:

Core.removeClass = function(target, theClass)
{
    var pattern = new RegExp("(^| )" + theClass + "( |$)");
    target.className = target.className.replace(pattern, "$1");
    target.className = target.className.replace(/ $/, "");
};
Run Code Online (Sandbox Code Playgroud)

第一次调用replace方法让我很困惑,我不明白"$ 1"值来自何处或意味着什么.我认为调用应该用""替换找到的模式.

javascript regex replace

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

什么是"售卖"?

究竟是什么东西?(你会如何定义它?)

在不同的编程语言中它是否意味着相同的事情?从概念上讲,没有看到确切的实施.

language-agnostic vendor

32
推荐指数
3
解决办法
7160
查看次数

GROUP BY子句没有聚合函数的任何原因?

我(彻底)学习SQL,并且遇到了这个GROUP BY条款.

GROUP BY根据您提供的参数聚合或分组结果集.如果在查询中使用此子句,则可以对结果集执行聚合函数,以查找结果集的统计信息,如查找平均值(AVG())或频率(COUNT()).

我的问题是:GROUP BY语句在没有伴随聚合函数的情况下是否有用?

更新 使用GROUP BYas DISTINCT(可能)是一个坏主意的同义词因为我怀疑它更慢.

mysql sql group-by aggregate

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

将变量传递给awk并在正则表达式中使用它

我正在学习awk,我无法将变量传递给脚本并将其作为正则表达式搜索模式的一部分使用.

这个例子是设计的,但显示了我的探索.

我的数据如下:

Eddy        Smith       0600000000  1981-07-16    Los Angeles
Frank       Smith       0611111111  1947-04-29    Chicago           
Victoria    McSmith     0687654321  1982-12-16    Los Angeles
Barbara     Smithy      0633244321  1984-06-24    Boston            
Jane        McSmithy    0612345678  1947-01-15    Chicago               
Grace       Jones       0622222222  1985-10-07    Los Angeles
Bernard     Jones       0647658763  1988-01-01    New York          
George      Jonesy      0623428948  1983-01-01    New York          
Indiana     McJones     0698732298  1952-01-01    Miami             
Philip      McJonesy    0644238523  1954-01-01    Miami
Run Code Online (Sandbox Code Playgroud)

我想要一个awk脚本,我可以传递一个变量,然后让awk脚本为变量做一个正则表达式.我现在有一个名为"003_search_persons.awk"的脚本.

#this awk script looks for a certain name, returns firstName, lastName and City

#print column headers
BEGIN {
    printf "firstName lastName …
Run Code Online (Sandbox Code Playgroud)

regex variables awk

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

Python闭包示例代码

我正在使用Dive Into Python 3学习Python .我喜欢它,但我不理解6.5节中用于介绍Closures示例.

我的意思是,我知道它是如何工作的,我觉得这很酷.但我没有看到任何真正的好处:在我看来,通过简单地在循环中逐行读取规则文件,并对每行读取进行搜索/替换,可以实现相同的结果.

有人可以帮助我:

  • 或者理解为什么在这个例子中使用闭包改进了代码(例如,更容易维护,扩展,重用或调试?)

  • 或建议一些其他真实代码示例的来源,其中闭包真正发光?

谢谢!

python closures python-3.x

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

更快地浏览大型Python代码库

作为程序员,我们阅读的内容比编写的要多.我开始在一家使用几个"大"Python软件包的公司工作; 具有较高KLOC的包裹或包裹系列.例证:Zope.

我的问题是我无法快速/轻松地浏览此代码库.我目前的策略是

  • 我开始阅读一个我需要改变/理解的模块
  • 我打了一个我需要了解更多的导入
  • 我通过在导入和回显模块之后放置Python调试(pdb)语句来找出导入的源代码的位置,这告诉我它的源文件
  • 我导航到它,在shell或Vim文件资源管理器中.
  • 大部分时间模块本身都会导入更多的模块,在我知道之前我已经"在我的盘子上"有10KLOC

或者:

  • 我看到了一个我需要了解更多的方法/类
  • 我在整个代码库中搜索(ack-grep)该方法/类的定义(这可能很痛苦,因为代码库部分在〜/ .buildout-eggs中)
  • 我找到一个或多个定义该方法/类的代码
  • 我必须推断出哪一个是我需要阅读的

这花费了大量时间,这对于大型代码库来说是可以理解的.但我觉得导航一个庞大而未知的Python代码库是一个常见的问题.

所以我正在为这个问题寻找技术工具或战略解决方案....

无法想象使用上述策略的硬核Python程序员.

python vim codebase

12
推荐指数
2
解决办法
6082
查看次数