相关疑难解决方法(0)

如果未修改,dicts是否保留迭代顺序?

如果我在Python中有一个字典,并且我遍历它一次,然后再次,那么迭代顺序是否保证保留,因为我没有插入,删除或更新字典中的任何项目?(但我可能已经做过查找).

python algorithm hash dictionary

19
推荐指数
3
解决办法
4045
查看次数

13
推荐指数
2
解决办法
5832
查看次数

如何在哈希的开头添加键/值对?

我的代码是:

hash = { two: 2, three: 3 }

def hash_add(hash, new_key, new_value)
  temp_hash = {}

  temp_hash[new_key.to_sym] = new_value
  temp_hash.merge!(hash)
  hash = temp_hash
  puts hash

end

hash_add(hash, 'one', 1)
Run Code Online (Sandbox Code Playgroud)

在方法中,puts hash返回{ :one => 1, :two => 2, :three => 3 },但是当hash1放入方法时,它在之后保持不变.这就像赋值不在函数之外.

我想我可以返回更新的哈希并在方法之外设置我想要更改的哈希:

hash = hash_add(hash, 'one', 1)
Run Code Online (Sandbox Code Playgroud)

但我只是不明白为什么我给哈希的赋值不会超出方法.

我有这个,有效:

def hash_add(hash, new_key, new_value)
  temp_hash = {}

  temp_hash[new_key.to_sym] = new_value
  temp_hash.merge!(hash)
  hash.clear

  temp_hash.each do |key, value|
    hash[key] = value
  end
end
Run Code Online (Sandbox Code Playgroud)

这给了我调用这个方法时我想要的东西,但是像这样重建哈希似乎有点过分了.

ruby hash

10
推荐指数
2
解决办法
7659
查看次数

标签 统计

hash ×3

ruby ×2

algorithm ×1

dictionary ×1

key ×1

python ×1