【问题标题】:is there any cleaner way to apply function to list [duplicate]有没有更简洁的方法可以将函数应用于列表 [重复]
【发布时间】:2018-07-25 16:48:54
【问题描述】:
A = [[1,2,3],[4,5,6]]

def addOne(a): 
    return a+1

addOne(A)不起作用,显然是因为我不想要A+1,

我想得到[[[2,3,4]],[5,6,7]]

[addone(x) for x in y for y in A] 也不起作用,我认为列表推导不起作用。

注意,addOne 只是一个更复杂函数的占位符

【问题讨论】:

  • list(map(func, A))[func(x) for x in A] 我不知道你为什么认为你必须这样做for x in y for y in A

标签: python


【解决方案1】:
>>> nums = [[1, 2, 3], [4, 5, 6]]
>>> def add_one(a):
...     return a + 1
... 
>>> [list(map(add_one, sublist)) for sublist in nums]
[[2, 3, 4], [5, 6, 7]]
>>> [[add_one(num) for num in sublist] for sublist in nums]
[[2, 3, 4], [5, 6, 7]]

【讨论】:

  • 或者只是:[x+1 for x in A]
  • @MitchWheat 也许......但 OP 可能只是使用“add_one”函数作为占位符,以便稍后放入不同的函数。
  • 真........
  • @MitchWheat 您链接到的副本并不真正适用于 OPs 最新编辑:“注意,addOne 只是更复杂功能的占位符”
  • 如果海报更改问题,我无能为力!完全不一样!
猜你喜欢
  • 2021-08-21
  • 1970-01-01
  • 2011-01-02
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
相关资源
最近更新 更多