如何使用新编辑的值查找和替换 python 列表中的值

How to finding and replace value in a python list with new edited value

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

步骤:

  1. 我在列表中有一个元素[8]
  2. 我需要找到当前元素(在我们的例子中是 8)减少值为 2,然后将(前缀和后缀)作为单独的元素添加到同一列表中 ['6','8','6']
  3. 从最新列表中取出第一个元素('6'),重复步骤1和步骤2('4','6','4'),并替换为所有repeating/duplicate/reoccurring个第一个元素('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<10

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 的值的问题。

有人可以帮我编程吗?

有没有其他方法可以用列表做同样的事情?

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

这是递归的好情况。您不会像问题中那样得到中间结果,但过程更加简化。

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]

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