Tag: python

获取Python字典字典中所有键的数量

我有一个Python 2.7词典的字典。 我需要快速计算所有键的数量,包括每个词典中的键。 所以在这个例子中,我需要所有的键的数量是6: dict_test = {'key2': {'key_in3': 'value', 'key_in4': 'value'}, 'key1': {'key_in2': 'value', 'key_in1': 'value'}} 我知道我可以迭代循环中的每个键,但我正在寻找一个更快的方法来做到这一点,因为我将有成千上万的键,这样做是无效的: count_the_keys = 0 for key in dict_test.keys(): for key_inner in dict_test[key].keys(): count_the_keys += 1 # something like this would be more effective # of course .keys().keys() doesn't work print len(dict_test.keys()) * len(dict_test.keys().keys())

如何强制Python在Snow Leopard和其他32位/ 64位问题上是32位的

当我从Mac上的bash shell运行以下代码时: $ file /usr/bin/python 我得到以下三行: /usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64 /usr/bin/python (for architecture i386): Mach-O executable i386 /usr/bin/python (for architecture ppc7400): Mach-O executable ppc 这似乎表明,Python已经被编译为所有三种架构或类似的东西? 我相信,基于我在尝试安装MySQL时遇到的一些错误,我使用的版本是64位版本。 所以有两个问题: 我怎么知道的? 我怎么能改变Python为32位呢? 比使用不同的编译设置重新编译的东西要厉害吗? 为什么arch从一个bash shell返回i386这似乎表明我不是在“64位模式”,当我知道基于我的处理器我正在运行一个64位的Mac? 对不起,这些可能都是新手的问题,整个32/64位的东西让我感到沮丧,我敢肯定有一些命令/工具可以使这个更简单。

Python中的inheritance和init方法

我是Python的乞丐。 我无法理解inheritance和__init__() 。 class Num: def __init__(self,num): self.n1 = num class Num2(Num): def show(self): print self.n1 mynumber = Num2(8) mynumber.show() 结果: 8 还行吧。 但我用Num2replace class Num2(Num): def __init__(self,num): self.n2 = num*2 def show(self): print self.n1,self.n2 结果: Error. Num2 has no attribute "n1". Error. Num2 has no attribute "n1". 在这种情况下, Num2如何访问n1 ?

Python:如何将html打印成文件

我正在使用lxml.html来生成一些HTML。 我想漂亮打印(缩进)我的最终结果到一个HTML文件。 我怎么做? 这是我所尝试过的,到现在为止(我对Python和lxml比较陌生): import lxml.html as lh from lxml.html import builder as E sliderRoot=lh.Element("div", E.CLASS("scroll"), style="overflow-x: hidden; overflow-y: hidden;") scrollContainer=lh.Element("div", E.CLASS("scrollContainer"), style="width: 4340px;") sliderRoot.append(scrollContainer) print lh.tostring(sliderRoot, pretty_print = True, method="html") 正如你所看到的,我正在使用pretty_print=True属性。 我认为这会给缩进的代码,但它并没有真正的帮助。 这是输出: <div style="overflow-x: hidden; overflow-y: hidden;" class="scroll"><div style="width: 4340px;" class="scrollContainer"></div></div>

Django SUM查询?

我有一个类似于以下的查询: SELECT SUM(ISNULL(table.name)) FROM table 这个SUM如何转换成Django中的QuerySet? (即什么操作xyz它转化为像MyModel.objects.xyz() ?))

双等于vs是在Python中

我在Python解释器中运行以下代码: >>> foo = 10 >>> dir(foo) == dir(10) True >>> dir(foo) is dir(10) False >>> 为什么是这样?

如何使用ast.NodeVisitor的简单例子?

有没有人有一个简单的例子,使用ast.NodeVisitor走Python 2.6中的抽象语法树? 访问和generic_visit之间的区别,我不清楚,我找不到任何使用谷歌codesearch或谷歌的例子。

Python中的“public”或“private”属性? 什么是最好的方法?

在Python中,我有以下示例类: class Foo: self._attr = 0 @property def attr(self): return self._attr @attr.setter def attr(self, value): self._attr = value @attr.deleter def attr(self): del self._attr 正如你所看到的,我有一个简单的“私人”属性“_attr”和一个属性来访问它。 有很多代码来声明一个简单的私有属性,我认为它不尊重“KISS”哲学来声明所有属性。 那么,如果我不需要一个特定的getter / setter / deleter,为什么不把所有的属性声明为公共属性呢? 我的答案是:因为封装原则(OOP)否则说! 什么是最好的方法 ?

ChoiceField在使用元组时不显示空标签

我正在尝试做什么 我将在数据库中保存关于比赛的数据。 我希望能够通过特定的标准来search比赛 – 尤其是比赛types。 关于竞争types 比赛types保存在一个元组中。 稍微缩短的例子: COMPETITION_TYPE_CHOICES = ( (1, 'Olympic Games'), (2, 'ISU Championships'), (3, 'Grand Prix Series'), ) 这些在模型中被使用(再次 – 这是模型的简化版本): class Competition(models.Model): name = models.CharField(max_length=256) type = models.IntegerField(choices=COMPETITION_TYPE_CHOICES) search表单 我不希望这些字段在search表单中是必需的,所以表单是这样定义的: class CompetitionSearchForm(forms.Form): name = forms.CharField(required=False) type = forms.ChoiceField(choices=COMPETITION_TYPE_CHOICES,required=False) 问题 我想在ChoiceField中的select小部件显示一个空的标签,但我没有得到一个。 任何帮助,将不胜感激:)

带有string索引的Python数组

是否有可能使用string作为索引在Python中的数组? 例如: myArray = [] myArray["john"] = "johns value" myArray["jeff"] = "jeffs value" print myArray["john"]