gpt4 book ai didi

python - 返回字符串列表中的 X+1 项

转载 作者:行者123 更新时间:2023-11-28 18:46:11 25 4
gpt4 key购买 nike

到目前为止,我有一个创建格雷码的函数,然后我需要创建一个返回格雷码“加一”的函数,基本上是按顺序返回下一个。所以如果 D = (0,0,1,1) 我需要返回 (0,0,1,0)

我有

def gray(x):
if x:
return ['0' + x[0]] + gray(x[1:]) + ['1' + x[0]]
else:
return []

def graycode(n):
if n:
return gray(graycode(n-1))
else:
return ['']

然后最后,

def GrayFinal(D):
z = ''.join(map(str,D))
str(z)
if z in graycode(len(D)):
return graycode(len(D))[z+1]
else:
return ['']

我不知道如何返回 Zth+1 条目

最佳答案

如果我正确地解释了你的问题,那么你问题的核心实际上与格雷码无关,而是与更一般的问题“给定一个我希望在 Python 列表中找到的元素,如何我在那之后检索下一个元素?

不幸的是,我现在只能想出一个相当脑残的解决方案,即

def next_elem(elem, input_list):
index = input_list.index(elem)
return input_list[index + 1]

请注意,这绝对不支持错误检查,我假设在您的情况下,错误检查将在代码主体中完成。将其放入您的代码中会产生以下结果:

def GrayFinal(D):
z = ''.join(map(str,D))
try:
return next_elem(z, graycode(len(D)))
except ValueError:
# Doesn't look like z was ever in the Gray code generated
return ['']
except IndexError:
# The next element is beyond the last element of the array!
return next_elem('0' + z, graycode(len(D) + 1))

关于python - 返回字符串列表中的 X+1 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19732375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com