2012-04-06 52 views
0

一个非常基本的问题..但我总是做这个不好的实现。减去和划分Python中的列表中的所有元素

我有一个int列表。

然后,我有一个诠释“K”和“J”

我想要做这样的事情:

for ele in foo_list: 
    ele = (ele - k)/j 

是否有一个Python的语法糖,使这件事情看起来很漂亮。 另外,我有一种不好的预感这样是一个非常糟糕的方式,容易出现的错误..

它是安全做一次手术

val = function(val) 

,所以你需要输入你的输出保存到输入..这个方法可以在某个时候变成“Gotcha”吗?或者做这些操作是否安全? 谢谢

谢谢。

回答

3

你的代码应该是

foo_list = [ (ele - k)/j for ele in foo_list] 

编辑:要回答你的第二个问题,val = f(val)是罚款。但是您尝试使用它的方式不起作用:ele不是指向列表中元素的指针,而是指向该元素的变量名称。当你给别的东西分配别的东西的时候,你会在其他地方使用这个变量名称:你不写入它指向的位置。

+0

哦列出内涵咄!谢谢:) – Fraz 2012-04-06 21:17:25

+1

这是一个[list comprehension](https://www.youtube.com/watch?v=t85uBptTDYY) - 同样值得注意的是,执行''x = f(x)''完全没问题。 – 2012-04-06 21:17:30

+0

@Lattyware:好吧.. :)非常感谢.. Python陷阱可能很难弄清楚。感谢您澄清 – Fraz 2012-04-06 21:18:39

1

或映射像往常一样:

foo_list = map(lambda ele: (ele-k)/j,foo_list) 
+3

需要注意的是,无论你需要使用''lambda''''map()''将会变得更慢,并且(更重要的是)难以阅读,所以坚持列出comps(或者generator/dict/set comps如所须)。 ''map()''通常只用于非常简单的事情。 – 2012-04-06 21:20:59

+0

是的,其实我喜欢用map和operator模块一起使用 – luke14free 2012-04-06 21:22:02

相关问题