我在理解如何在python中对字典使用reduce时遇到了一些问题。例如,我有下面这本字典。
{1: 3, 2: 1, 3: 2}
我试着计算出以下公式:
s = 0
for i in h:
s += h[i] * (h[i] - 1)
这按预期工作(我得到:8),但我试图将其转换为reduce范式的尝试失败了:reduce(lambda x, y: x + y * (y - 1), h),但我得到了错误的答案。
我想这是因为我使用的是键,而不是值。如何将我的代码转换为正确的reduce?
我正在尝试理解类如何更好地“在python的引擎盖下”工作。
如果我像这样创建一个类Foo
class Foo:
bar = True
然后可以直接访问Foo,例如print(Foo)或print(Foo.bar)。
但是,如果我动态地创建一个类,并且不将它设置为如下所示的变量
type('Foo',(),{'bar':True})
如果在解释器中完成,它将显示<class '__main__.Foo'>。但是,当我试图打印Foo时,它是未定义的.NameError: name 'Foo' is not def
我有一个小函数,我已经输入了提示,但我得到了一个错误。我查了一下,发现了一些关于强制转换和添加断言的建议,但它们也没有帮助。我使用的是mypy==0.812和Python3.6。任何关于如何解决这个问题的提示都会有所帮助。
error: Value of type "Optional[Dict[Any, Any]]" is not indexable
这是函数:
from typing import Union
from datetime import datetime
def _get_number(my_dict: Union[dict, None], relevant_
Python 2.7.1
我想知道为什么我不能做下面这些看起来很明智的事情
def do_stuff():
# return a function which takes a map as an argument and puts a key in there
f = lambda map: map['x'] = 'y' #compilation error
return f
x = do_stuff()
map = {}
x(map)
print map['x']
我可以让lambda函数变得更简单一些,比如f =
我有一个程序,它从数据库表中逐行读取(使用pyodbc),然后执行以下操作: 目的:使用Python3API在tableau中创建.hyper提取主要缺点:插入到.hyper文件( tableau )是一个逐行操作,我必须显式地将每行的每一列分配给tableau中的一个行对象,然后插入到tableau超文件中。 供审查的代码: while row is not None:
for i in range(0,colCount):
if row[i] is not None:
if columnDataTypes[i] == 15:
我是python的新手,我真的很喜欢使用字典而不是switch/case语句的概念,但是有一个问题我搞不懂
假设我们有一个“pythonic case”语句
{
'a': somemethod,
'b': othermethod
}['a']()
这可以很好地工作,但是我想不出如何像在java这样的其他语言中那样运行一些代码块,如下所示
{
'a': { some commands here }
'b': { other commands here that are executed
我正在通过在线教程学习python中的lambda函数。我知道它是如何工作的,但我遇到了一个让我困惑的例子(在这个页面上):
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
我不明白"mydoubler“函数在这里是如何工作的。当我们之前没有定义11的时候,它怎么会是一个参数呢?谢谢。
我想得到等级规则为A,B+,B,...的.csv输出。
输入数据如下:
name,score
A, 55
B, 30
.
.
.
这是我的代码:
import pandas as pd
import numpy as np
#Calculate grade regulation
def grading(x):
if x >=90 and x <= 100:
return 'A'
elif x >= 85 and x <= 89.99:
return 'B+'
elif x >= 80 and x <
我需要测试python模块中的python字典,而不需要运行该文件。所以我决定用ast.parse解析它。我几乎已经想出了如何构建原始字典,只是我找不到一种方法让函数值工作。
config.py
...
config = {
# theese None, booleans and strings I got parsed
user_info: None,
debug: False,
cert_pass: "test",
# the function values I have problem with
project_direc
Python文件(模块)中的以下代码让我感到困惑: if __name__ == '__main__':
x = 1
print x 在我使用过的其他语言中,此代码将引发异常,因为x变量是if语句,并且不应该存在于它之外。但是这段代码会执行,并输出。有人能解释一下这种行为吗?在模块中创建的所有变量都是全局的/对整个模块可用吗?
我最近有个面试。面试官问我如何在python中迭代dict。我说过使用for语句的所有方法。但他告诉我lambda怎么样
我感到非常困惑,我认为lambda是一个匿名函数,但是它是如何迭代一个dict的呢?这样的代码:
new_dict = sorted(old_dict.items(), lambda x: x[1]) # sorted by value in dict
但是在这段代码中,lambda被用作提供比较键的函数。你觉得这个问题是什么?
我正在研究一个图像分类器,并试图实现循环学习率,以获得更好的结果。我正在使用lr_scheduler.LambdaLR在训练期间调整学习率,但我遇到一个错误,我不确定是什么原因造成的。这是我的代码: lr_find_epochs = 2
start_lr = 1e-7
end_lr = 0.1
# Set up the model, optimizer and loss function for the experiment
optimizer = torch.optim.SGD(model.parameters(), start_lr)
criterion = nn.NLLLoss()
我对python非常在行,不知道如何正确地问这个问题。
我试图得到一个用户的输入,并使用它在列表中找到一个项目,然后让该项目做一些事情.我不知道该怎么做。
就像这样:
things = ['thing1','thing2','thing3']
item = input('type your item here')
if item in things == True:
if item == 'thing1':
do something
elif item == 'thing2&
在python中,引用操作符的等效性是什么?我发现有必要推迟评估。例如,假设在下面的lisp psuedocode中有:
a = '(func, 'g)
g = something
(eval a)
我要做的是把对g的评估推迟到以后。这是必要的,因为我希望稍后定义g。在python中,这个psuedocode的等效概念是什么?
在Perl中,如果我希望hash元素的值是对匿名子例程的引用: my $hash = { hi => sub { print "dummy" } };
$hash->{hi}->(); # Prints "dummy". 在Python中,之前的hash/dict有没有等价的方法? 注意:我需要键值包含函数,而不是重定向到函数的引用
我发现python不喜欢使用lambda方程。
y = lambda x: exp(2*x)
m = lambda x: 2*y - x
产生错误:
TypeError: unsupported operand type(s) for *: 'int' and 'function'
我目前正在研究非常长的方程,我需要替换很多方程,但是Python不允许我对lambda方程进行操作。在蟒蛇身上有什么办法可以避免吗?