Arrays 如何使用Godot中的key:value对将两个长度相等的数组合并到一个字典中?

Arrays 如何使用Godot中的key:value对将两个长度相等的数组合并到一个字典中?,arrays,dictionary,merge,godot,gdscript,Arrays,Dictionary,Merge,Godot,Gdscript,我一直试图在Godot中将有序数组(例如:[0,1,2,3])中的值随机化。数组应该有一个shuffle()方法,但它似乎被破坏了,并且总是返回“null”。我找到了一种使用Fisher-Yates shuffle的解决方法,但是引擎认为生成的数组是“未排序”的,因此当我尝试使用诸如bsearch()之类的方法按其位置查找值时,结果最多是不可靠的 我的解决方案是创建一个字典,由一个包含我获得的随机值的数组组成,并与第二个等长数组(按数字顺序排序)合并,然后我可以在需要时将其用作访问特定数组位置的

我一直试图在Godot中将有序数组(例如:[0,1,2,3])中的值随机化。数组应该有一个shuffle()方法,但它似乎被破坏了,并且总是返回“null”。我找到了一种使用Fisher-Yates shuffle的解决方法,但是引擎认为生成的数组是“未排序”的,因此当我尝试使用诸如bsearch()之类的方法按其位置查找值时,结果最多是不可靠的

我的解决方案是创建一个字典,由一个包含我获得的随机值的数组组成,并与第二个等长数组(按数字顺序排序)合并,然后我可以在需要时将其用作访问特定数组位置的键

问题很简单

在GDScript中,如何获取2个数组。。 例如:数组1=[0,1,2,3] 数组2=[a,b,c,d]

…并将它们合并成一个字典,如下所示: MergedDictionary={0:a,1:b,2:c,3:d}

任何帮助都将不胜感激

Godot不支持像Python那样的“zip”方法来合并数组,所以我只能手动合并它们。然而。。。尽管我花了很多时间进行搜索,但在GDScript中几乎没有关于如何执行此操作的文档。

尝试以下方法:

var a = [1, 2, 3]
var b = ["a", "b", "c"]
var c = {} 

if a.size() == b.size():
    var i = 0
    for element in a:
        c[element] = b[i]
        i += 1
    print("Dictionary c: ", c)

如果要向字典中添加元素,可以像现有键一样为键赋值。

非常感谢您的响应,我非常感谢您的帮助。我尝试了代码,它完全符合我的需要。再次感谢!