我希望我的字典不区分大小写。 我有这个例子代码: text = "practice changing the color" words = {'color': 'colour', 'practice': 'practise'} def replace(words,text): keys = words.keys() for i in keys: text= text.replace(i ,words[i]) return text text = replace(words,text) print text 输出=练习改变颜色 我想要另一个string“ 改变颜色 ”(其中“颜色”以大写字母开始)也给出相同的输出。 我相信有一个通用的方法来使用mydictionary[key.lower()]转换为小写,但我不知道如何最好地将其整合到我现有的代码。 (如果这将是一个合理的,简单的方法)。
有没有办法获得Python中的对象的当前裁判计数?
class PurchaseOrder(models.Model): product = models.ManyToManyField('Product') vendor = models.ForeignKey('VendorProfile') dollar_amount = models.FloatField(verbose_name='Price') class Product(models.Model): products = models.CharField(max_length=256) def __unicode__(self): return self.products 我有这个代码。 不幸的是,错误来自admin.py与“ManyToManyField” class PurchaseOrderAdmin(admin.ModelAdmin): fields = ['product', 'dollar_amount'] list_display = ('product', 'vendor') 错误说“'PurchaseOrderAdmin.list_display [0]','product'是不支持的ManyToManyField。 但是,当我从“list_display”中取出“product”时会进行编译。 那么如何在list_display中显示“product”而不会出错? 编辑:也许一个更好的问题是如何显示list_display中的ManyToManyField?
是否可以映射一个NumPy数组? 如果是的话,怎么样? 给定a_values – 二维数组 – 这是目前为我所用的技巧: for row in range(len(a_values)): for col in range(len(a_values[0])): a_values[row][col] = dim(a_values[row][col]) 但是,如果我怀疑在NumPy中的某个地方必须有一个function与以下类似的function一样: a_values.map_in_place(dim) 但如果像上面这样的东西存在,我一直无法find它。
我正在尝试执行以下操作,但使用numpy数组: x = [(0.1, 1.), (0.1, 2.), (0.1, 3.), (0.1, 4.), (0.1, 5.)] normal_result = zip(*x) 这应该给以下结果: normal_result = [(0.1, 0.1, 0.1, 0.1, 0.1), (1., 2., 3., 4., 5.)] 但是,如果input向量是一个numpy数组: y = np.array(x) numpy_result = zip(*y) print type(numpy_result) 它(预计)返回一个: <type 'list'> 问题是我需要在这之后将结果转换回numpy数组。 我想知道的是,如果有一个有效的numpy函数可以避免这些来回转换,那么结果是什么呢?
当我遇到这种情况时,我可以用javascript来实现,我总是认为如果有一个foreach函数,这将是方便的。 按照foreach我的意思是下面描述的function: def foreach(fn,iterable): for x in iterable: fn(x) 他们只是在每个元素上做,并没有产生或返回的东西,我认为它应该是一个内置函数,应该比用纯Python编写速度更快,但我没有在列表中find它,或者它只是叫另一个名字?或者我只是想念这里的一些观点? 也许我错了,因为调用Python的函数成本高,绝对不是一个好的做法。 而不是一个循环,该函数应该做的循环在其身体看起来像下面这已经在许多python的代码build议中提到: def fn(*args): for x in args: dosomething 但是我认为基于这两个事实,foreach仍然是受欢迎的: 在正常情况下,人们并不在乎performance 有时API不接受可迭代的对象,你不能重写它的源代码。
我正试着教科莫多,当我点击正确的击键时,开启IDLE 。 我可以使用Windows资源pipe理器地址栏的开始菜单中快捷方式的确切path来启动IDLE,所以我希望Komodo也能够使用它。 但是,给科莫多这条道路导致它说1返回。 这似乎是一个失败,因为IDLE不启动。 我以为我会避免使用快捷方式,只是使用确切的path。 我进入开始菜单,findIDLE的快捷方式,右键点击查看属性。 目标是灰色的,但是说“Python 2.5.2”。 “开始”设置为“C:\ Python25 \”。 “打开文件位置”button也灰显。 如何找出这个快捷方式真正指向的位置? 我已经尝试在C:\ Python25中启动python.exe和pythonw.exe,但都没有启动IDLE。
我最近开始研究如何在Python中实现各种数据结构,以使我的代码更高效。 在调查list和deques是如何工作的时候,我发现当我想移位和不移位时,我可以从列表中的O(n)到O(1)deques(列表被实现为固定长度数组每次在前面插入东西时都要完全复制,等等)。 我似乎无法find的是如何执行deque的具体细节,以及其缺点vs列表的具体细节。 有人能就这两个问题给我启发吗?
为什么在Python 3中,使用不同的值进行初始化的范围比较相等? 当我在我的解释器中执行以下命令时: >>> r1 = range(0) >>> r2 = range(2, 2, 2) >>> r1 == r2 True 结果是True 。 这是为什么? 为什么具有不同参数值的两个不同的range对象被视为相等?
编辑 我有: [{'a':1},{'b':2},{'c':1},{'d':2}] 输出应该是: {'a':1,'b':2,'c':1,'d':2}