【问题标题】:Python - Replacing Indice Values in Nested ListsPython - 替换嵌套列表中的索引值
【发布时间】:2016-04-03 12:41:17
【问题描述】:

我有一个嵌套列表,例如:

nest = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]

我想将每个嵌套列表中指定范围内的所有值替换为 1,从 x 到 y。

如果x 是起点,y 是终点,例如x = 1y = 3,我希望下面的结尾是...

nest = [[0,1,1,1,0],[0,1,1,1,0],[0,1,1,1,0]]

【问题讨论】:

  • 您有问题吗?
  • 为避免吸引反对票,请考虑在您的问题中发布代码尝试。
  • 这是一个问题,我所有的代码尝试都是错误的,为什么要发布它们?
  • 您的“问题”中没有问号。如果您发布代码,我们可以解释为什么它是错误的。实际上,您似乎在要求我们做作业。
  • 好吧,我的错,我以为我问的例子很明显,我下次一定要打个问号。在这种情况下,我的代码不会有任何帮助,所以我选择尽可能简单地列出问题。

标签: python list replace


【解决方案1】:

这是一种使用切片的方法。

ones = [1]  * (y - x + 1)
for seq in nest:
    seq[x:y+1] = ones

【讨论】:

    【解决方案2】:

    试试这个:

    nest = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
    x = 1
    y = 3
    for array in nest:
        for i in range(x, y+1):
            array[i] = 1
    
    print(nest)
    

    我认为您也会从基本的 Python 教程中受益,例如尝试 codecademy.com。

    【讨论】:

    • 或者将内部循环替换为切片arr[x:y+1] = [1]*(y-x+1),在本例中大约快20%。
    • 是的,这就是我想要的,谢谢。我已经学了不止一些基本的tuts,这有什么特别的,所以我可以练习吗?
    • @JonnyDoeInWisco 我建议专门查看列表和迭代(这个问题涉及什么)。能力来自经验和实践,尝试给自己完成任务并自己解决,并在必要时进行搜索;这主要是我学到的。
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多