【问题标题】:How to finding and replace value in a python list with new edited value如何用新的编辑值在python列表中查找和替换值
【发布时间】:2020-03-12 14:58:06
【问题描述】:

我正在尝试编写 python 代码来查找和替换列表中的值。

步骤:

  1. 我在列表中有一个元素[8]
  2. 我需要找到当前元素(在我们的例子中为 8)减少值为 2,然后将(前缀和后缀)作为单独的元素添加到同一列表中 ['6','8','6']
  3. 从最新列表('6')中取出第一个元素,重复步骤 1 和步骤 2('4','6','4'),并替换为列表中所有重复/重复/重复出现的第一个元素('6')。 ['4','6','4','8','4','6','4']
  4. 重复上述步骤,直到并且除非我们将 number>0 作为第一个元素。['2','4','2','6','2','4','2','8','2','4','2','6','2','4','2']

另一个例子:

[10]

[8,10,8]

[6,8,6,10,6,8,6]

[4,6,4,8,4,6,4,10,4,6,4,8,4,6,4]

[2,4,2,6,2,4,2,8,2,4,2,6,2,4,2,10,2,4,2,6,2,4,2,8,2,4,2,6,2,4,2]

我可以为 string_length

string = '8'
i = int(string)

while i>2:
    print(string)
    temp = str(int(string[0])-2) + string[0] + str(int(string[0])-2)

    string = string.replace(string[0],temp)
    i -= 2

print(string)

输出:

8
686
4648464
242624282426242

对于单个数字,我可以做到,但对于大于 9 的值,我面临问题。

有人可以帮我编程吗?

还有其他方法可以用 out list 做同样的事情吗?

【问题讨论】:

    标签: python python-3.x list str-replace


    【解决方案1】:

    首先,您的示例在字符串、字符串列表和整数列表之间不一致,但这里最简单的选项是整数列表,所以我将使用它。如果需要,您可以随时转换。

    这是递归的好地方。您不会像问题中那样得到中间结果,但过程要简化得多。

    def expand(number, k=2):
        if number == k:
            return [number]
        expansion = expand(number-k, k)
        return expansion + [number] + expansion
    
    print(expand(8))  # -> [2, 4, 2, 6, 2, 4, 2, 8, 2, 4, 2, 6, 2, 4, 2]
    

    这段代码应该是自记录的,但如果有什么不清楚的地方请告诉我。

    【讨论】:

      猜你喜欢
      • 2020-01-10
      • 2020-05-25
      • 2020-08-04
      • 1970-01-01
      • 2016-12-05
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 2020-06-07
      相关资源
      最近更新 更多