我有一个数组:a = ["a", "b", "c"]
,我想转换为散列h = {1=>"a", 2=>"b", 3=>"c"}
其中键是数组的位置。有任何想法吗?将数组转换为散列的最佳方式是什么?
回答
一种方法是:
h = Hash[a.map.with_index { |s, i| [ i + 1, s ] }]
如果a.map
不使用块,你会得到一个枚举对象,那么你可以得到通过遍历该枚举器与with_index
迭代索引。然后,只需调整起始索引并按照Hash[]
的正确顺序安排事情即可。
你也可以做这种方式(这是相当多的房子的Java回答的音译):
h = { }
a.each_with_index { |s, i| h[i + 1] = s }
你做哪种方式,它主要是一个口味问题。
只是遍历数组,在Java中它将是以下内容。
Map<Integer, String> map = new HashMap<Integer, String>();
for (int i = 0; i < array.length; i++) {
map.put(Integer.valueOf(i), array[i]);
}
'map.put(i + 1,array [i]);'OP想让键从1开始,你可以使用自动装箱。 –
尝试在Python中:
Ruby中>>> dict((k, v) for k, v in enumerate(["a", "b", "c"]))
{0: 'a', 1: 'b', 2: 'c'}
对不起,我忘了。该语言是红宝石 – madam
a = ["a", "b", "c"]
Hash[a.map.with_index(1){|i,ind| [ind,i] }]
# >> {1=>"a", 2=>"b", 3=>"c"}
a = ["a", "b", "c"]
Hash[(1..a.length).zip(a)]
1..a.length
给你[1,2,3]
(隐式转换后)
zip(一)给你[1,"a",2,"b",3,"c"]
如果你是代码打高尔夫球,那么你可以使用大小,而不是长度,但我认为在这里长度读取更好。 –
- 1. 基于值数组将NSString转换为NSInteger的最佳方式是什么?
- 2. 将MySQL结果转换为简单数组的最佳方式是什么?
- 3. 在Java中将输入流转换为数组的最佳方式是什么?
- 4. 将int数组转换为字符串的最佳方式是什么?
- 5. 将ByteString转换为Int的最佳方式是什么?
- 6. 将.Net类转换为SQLite表的最佳方式是什么?
- 7. 将数据行[]转换为列表<int>的最佳方式是什么?
- 8. 什么是转换为数组的最佳字符串格式?
- 9. 什么是将视频转换为EmguCV中的列表的最佳方式
- 10. 在Python中将对象转换为列表的最佳方式是什么?
- 11. 什么是将SymPy矩阵转换为numpy数组/矩阵的最佳方法
- 12. 什么是从String转换为HashMap的最佳方式?
- 13. 什么是将Html表转换为数据表的最佳方式
- 14. 在JavaScript中将数字转换为字符串的最佳方式是什么?
- 15. 将R data.table转换为pandas.DataFrame的最佳方法是什么?
- 16. 将has_many关系转换为has_and_belongs_to_many的最佳方法是什么?
- 17. 将html转换为postscript的最佳方法是什么?在java
- 18. 将org.json.JSONObject转换为javax.sql.rowset.serial.SerialBlob的最佳方法是什么?
- 19. 将csv转换为字符串的最佳方法是什么?
- 20. 将JSONObject转换为域对象的最佳方法是什么?
- 21. 将我的avi文件转换为flv格式的最佳方式是什么?
- 22. 获取QPixmap散列的最佳方式是什么?
- 23. 什么是安全存储密码(散列)的最佳方式
- 24. 将MYSQL表转储为CSV的最佳方式是什么?
- 25. 将Matlab多维单元格数组转换为Javascript数组的最佳方式是什么?
- 26. 在Angular 2中将字符串数组转换为对象数组的最佳方式是什么?
- 27. 将[] []形式的数组转换为[,]的最明智的方法是什么?
- 28. 如何将散列数组转换为散列值数组?
- 29. 计算一组点的散列码的最佳方式是什么?
- 30. Scala的Java集合:将java.util.list转换为scala.immutable.Set的最佳方式是什么?
可以指定的语言吗? – Antoine
你想在纸上做到这一点,或者你打算使用某种特定的编程语言吗? –
看起来像红宝石 –