我给了一个指数系数作为多项式的键值对的字典。我的任务是创建一个函数来返回包含导数指数 - 系数键值对的字典。这是我这么远,但它不工作: 如何使用字典理解+ if/else更改词典中的键值?
def diff_p(d):
d = {i - 1: i*d[i] if i is not 0 else d[i]: 0 for i in d}
return d
p = {0: -3, 3: 2, 5: -1}
为什么我得到语法错误?有人能想出一个很好的补救办法,最好是一个班轮吗?
更新:
感谢卡尔Knechtel的回答可以使这项任务到这个整齐的一个班轮:
deff_p = lambda d: {e - 1: c*e for e, c in d.items() if e != 0}
“else”子句应该表示什么意思? 'else' 0? – gtlambert
如果指数(d [i])是0(x^0 = 1),这意味着d [i]是一个常数,那么它的导数就是0,因此d [i]:0 – Thomas
你的意思是,如果'i '不是0,那么'd = {i - 1:i * d [i]}'。否则,'d = {d [i]:0}'?然而,在这种情况下,假设'i'为0.因为你的'if..else'工作在:Python,所以你认为你的意思是:'d = {i - 1:d [i]:0 for i in d} '我* d [我]如果我不是0其他d [i]'。 –