【问题标题】:Finding and replacing within a 'grouped' list在“分组”列表中查找和替换
【发布时间】:2020-03-31 23:47:42
【问题描述】:

有没有办法对按组排序的列表进行查找和替换?

场景:

my_list = [[1,5],[3,6],[-1,9]]

我想将所有 1 或 3 的值替换为 11,这样输出为:

my_list = [[11,5],[11,6],[-1,9]]

我已经能够通过创建 3 个变量并添加它以使其成为一个大列表来进行查找替换,但是我仍然想保留相同的形式,因此我想知道如何在它仍然处于该形式时做到这一点?

【问题讨论】:

标签: python list


【解决方案1】:

list comprehension solution 的替代方法是修改原始列表:

for group in my_list:
    for i, x in enumerate(group):
        if x in {1, 3}:
            group[i] = 11

如果您的列表包含大量元素,这将是最佳选择。

【讨论】:

    【解决方案2】:

    您可以通过嵌套列表理解来实现这一点,例如:

    my_list = [[y if y not in [1, 3] else 11 for y in x] for x in my_list]
    

    这保留了嵌套列表结构,并将任何 1 或 3 替换为 11。输出为:

    [[11, 5], [11, 6], [-1, 9]]
    

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 2019-02-20
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2011-11-17
      • 2020-05-25
      • 2018-08-18
      • 1970-01-01
      相关资源
      最近更新 更多