我有: dictionary = {"foo":12, "bar":2, "jim":4, "bob": 17} 我想遍历这个字典,但通过值而不是键,所以我可以使用另一个函数中的值。 例如,我想testing哪些字典值大于6 ,然后将它们的密钥存储在列表中。 我的代码如下所示: list = [] for c in dictionary: if c > 6: list.append(dictionary[c]) print list 然后,在一个完美的世界里, list将包含所有的值大于6的键。 但是,我for循环只是迭代的关键; 我想改变这个价值! 任何帮助是极大的赞赏。 谢谢
我正在玩Python中的随机库来模拟我工作的项目,并发现自己处于一个非常奇怪的位置。 假设我们在Python中有以下代码: from random import randint import seaborn as sns a = [] for i in range(1000000): a.append(randint(1,150)) sns.distplot(a) 情节遵循“离散的统一”分配,因为它应该。 但是,当我将范围从1更改为110时,该图有几个高峰。 from random import randint import seaborn as sns a = [] for i in range(1000000): a.append(randint(1,110)) sns.distplot(a) 我的印象是峰值在0,10,20,30,…但我无法解释它。 编辑:这个问题是不相似的build议重复,因为在我的情况下,问题是seaborn图书馆和我的方式可视化的数据。 编辑2:按照答案的build议,我试图通过更改seaborn库来validation它。 相反,使用matplotlib这两个图都是一样的 from random import randint import matplotlib.pyplot as plt a = [] for i […]
我想从给定的列表中创build一个字典, 只需一行 。 字典的键将是索引,值将是列表的元素。 像这样的东西: a = [51,27,13,56] #given list d = one-line-statement #one line statement to create dictionary print(d) 输出: {0:51, 1:27, 2:13, 3:56} 对于我为什么要一行,我没有任何具体的要求。 我只是在探索python,并想知道这是否可能。
我有一个非常简单的HTTP服务器的以下shell脚本: #!/bin/sh echo "Serving at http://localhost:3000" python -m SimpleHTTPServer 3000 我想知道如何启用或添加像Access-Control-Allow-Origin: *到这个服务器的CORS头 ?
我有: count = 0 i = 0 while count < len(mylist): if mylist[i + 1] == mylist[i + 13] and mylist[i + 2] == mylist[i + 14]: print mylist[i + 1], mylist[i + 2] newlist.append(mylist[i + 1]) newlist.append(mylist[i + 2]) newlist.append(mylist[i + 7]) newlist.append(mylist[i + 8]) newlist.append(mylist[i + 9]) newlist.append(mylist[i + 10]) newlist.append(mylist[i + 13]) […]
我在我的网站中使用Django表单,并希望控制字段的顺序。 以下是我如何定义我的表单: class edit_form(forms.Form): summary = forms.CharField() description = forms.CharField(widget=forms.TextArea) class create_form(edit_form): name = forms.CharField() 该名称是不可变的,只应在实体创build时列出。 我使用inheritance来增加一致性和DRY原则。 事实上完全可以预见的是,没有错误的是,名称字段在view / html中最后列出,但是我希望名称字段位于摘要和描述之上。 我意识到,我可以通过将摘要和描述复制到create_form中,并松开inheritance来轻松修复它,但是我想知道这是否可能。 为什么? 想象一下,在edit_form中有100个字段,并且在create_form的顶部必须添加10个字段 – 复制和维护这两个表单看起来并不那么性感。 (这不是我的情况,我只是做一个例子) 那么,我该如何重写这个行为呢? 编辑: 显然没有经过讨厌的黑客(摆弄.field属性)没有正确的方法来做到这一点。 .field属性是一个SortedDict(Django的内部数据结构之一),它不提供任何重新sorting键值对的方法。 它确实提供了一种在给定索引处插入项目的方法,但是这会将项目从类成员移动到构造器中。 这个方法可以工作,但是使代码更不可读。 我认为唯一的另一种方式是修改框架本身,这在大多数情况下是不太理想的。 总之,代码会变成这样的: class edit_form(forms.Form): summary = forms.CharField() description = forms.CharField(widget=forms.TextArea) class create_form(edit_form): def __init__(self,*args,**kwargs): forms.Form.__init__(self,*args,**kwargs) self.fields.insert(0,'name',forms.CharField()) 那让我闭嘴:)
我想知道是否有任何内置的函数在Python中打破了string分为2部分,基于最后一次出现的分隔符。 例如:考虑string“abc,d,e,f”,在分隔符“,”之后,我想输出为 “abc,d,e”和“f”。 我知道如何操作string来获得所需的输出,但我想知道是否有任何在python中构build函数。
在这个Django的示例tutotrial在这里: http ://lightbird.net/dbe/todo_list.html 教程说: “这改变了我们的表格布局,我们不得不要求Django重置和重新创build表格: manage.py reset todo; manage.py syncdb manage.py reset todo; manage.py syncdb “ 但是,当我运行manage.py reset todo ,我得到的错误: $ python manage.py reset todo – Unknown command: 'reset' 这是因为我使用sqlite3而不是postgresql? 有人可以告诉我什么命令是重置数据库? 命令: python manage.py sqlclear todo返回错误: $ python manage.py sqlclear todo CommandError: App with label todo could not be found. Are you sure your INSTALLED_APPS […]
是否有可能从一个字典在Python中创build一个对象,使每个键是该对象的属性? 像这样的东西: d = { 'name': 'Oscar', 'lastName': 'Reyes', 'age':32 } e = Employee(d) print e.name # Oscar print e.age + 10 # 42 我认为这几乎是这个问题的反面: 来自对象字段的Python字典
Python和JavaScript都允许开发人员使用或省略分号。 不过,我经常看到(在书籍和博客中)build议我不要在Python中使用分号,而我应该总是在JavaScript中使用它们。 在语言如何使用分号之间是否存在技术差异,或者这只是一种文化差异?