Gray-rank算法在python中的实现

Gray-rank算法在python中的实现,python,algorithm,gray-code,Python,Algorithm,Gray Code,如何在python中实现以下算法: () 您可以在操作符中使用: if (n - i) in t: 或者干脆 if n - i in t: 此外,操作员^不会按照您的想法操作。要获得数字的幂,请使用**: r += 2**i 注意: 中的操作符将处理元组、列表、dict和字符串 编辑: 由于t是一个字符串,要检查t是否包含整数(n-i),必须将整数n-i转换为字符串: if str(n - i) in `t`: # ... 假设t是dict或列表 if (n - i) in

如何在python中实现以下算法:

()


您可以在操作符中使用

if (n - i) in t:
或者干脆

if n - i in t:
此外,操作员
^
不会按照您的想法操作。要获得数字的幂,请使用
**

r += 2**i
注意:

中的
操作符将处理元组、列表、dict和字符串

编辑:

由于
t
是一个字符串,要检查
t
是否包含整数(
n-i
),必须将整数
n-i
转换为字符串:

if str(n - i) in `t`:
    # ...

假设
t
dict
列表

if (n - i) in t:

假设
t
是一个
dict
list
,这应该可以用。

当我试图运行:print getGraycodeRank(4,101)时,我得到:if(n-I)in t:#如何检查它?TypeError:“in”需要字符串作为左操作数,而不是int@Fos
n
t
的类型是什么?@Fos您必须将整数
4
转换为字符串:
n=str(n)
我不明白。现在我得到了错误:对于反转的I(范围(0,n)):TypeError:range()应该是整数结束参数,得到了str。
if (n - i) in t: