【问题标题】:Lambda editing Nth object of list and return edited listLambda 编辑列表的第 N 个对象并返回编辑后的列表
【发布时间】:2021-11-19 10:31:33
【问题描述】:

我有一个清单。

a = [[10,13,14],[34,23,4],[1,6,3]]

现在我想增加列表中每个子列表的第 N 个整数。

def increase(sublistOrg):
    sublist = sublistOrg.copy()
    sublist[1] += 1
    return sublist

aEdited = list(map(increase, a))

我可以用 lambda 表达式替换额外的“增加”函数吗?

【问题讨论】:

  • 这会就地修改初始列表并将其分配给附加列表。这是有意和要求,还是创建一个新列表也可以?
  • 我解决了这个问题。谢谢@MisterMiyagi

标签: python list lambda map-function


【解决方案1】:
lambda x: [x[i] + 1 if i == 1 else x[i] for i in range(len(x))]

这可行,但它可能比只使用“正常”功能更糟糕

【讨论】:

    【解决方案2】:

    您可以使用 lambda 来做到这一点,但它可能比您拥有的解决方案更丑:

    aEdited = list(map(lambda x: [element if index != 1 else element + 1 for index, element in enumerate(x)], a))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多