你如何在python中附加或覆盖列表元素?
我目前正在尝试将我在 ruby 中工作的函数转换为 python,我的 ruby 代码如下所示:
def self.push_array_hash(key,selector,level,array)
(0..array.length).each do |i|
x = array[i]
selector[level] = i+1
if(x.is_a?(Array))
self.push_array_hash(key,selector,level+1,x)
end
self.push_datum("#{key}(#{selector.join(',')})", x)
end
end
我可以将此函数称为:self.push_array_hash(key,Array.new,0,val)
无需知道嵌套数组的维度。如果该元素尚不存在,则该代码selector[level] = i+1
可以轻松地处理将元素附加到数组中,并在它确实存在selector[level]
时更改 at 的值。level
那是红宝石(只给了每个人都可以理解我的目标),到python。这是我翻译的代码:
def push_list_dict(self, key, selector, level, array):
for i, x in enumerate(array):
selector[level] = i+1
if isinstance(x, (list, set)):
if isinstance(value, set):
value = sorted(value)
self.push_list_dict(key,selector,level+1,x)
self.push_datum(key+"("+",".join(map(str, selector))+")",x)
我这样调用函数:self.push_array_dict(key,[],0,value)
,但是它会中断selector[level] = i+1
并给我错误:IndexError: list assignment index out of range
。是否有一种简单的方法可以将值附加到数组或重置值?谢谢,
约书亚