0 0

ruby 每次迭代了两个怎么写?3

数组肯定是双数的

a =[1,2,3,4,5,6,7,8]

a.each{|dd,cc|

puts cc.to_s
}


不行阿
问题补充:
想一次迭代取数组里的两个数?a.each第一次就取出1,2,第二次取出3,4?each每次迭代都是取数组的一个值的.
没有一次取出两个的结果?顺序不能改变,hash会改变顺序的。
2009年1月08日 10:53

9个答案 按时间排序 按投票排序

0 0

采纳的答案

还有一个方法是用each_slice
下面示例参数2代表切片大小为2

[1,2,3,4,5,6].each_slice(2) do |slice|
  print slice[0] , "," , slice[1] , "\n"
end


输出
1,2
3,4
5,6


查看该方法说明:
ri each_slice

2009年1月11日 13:53
0 0

如果是rails下面,可以用
[1,2,3,4,5,6].split(2) #=> [[1,2],[3,4],[5,6]]

自己写一个split也很容易

2009年1月10日 17:38
0 0

如果可以改数组a,那么把a做成一个数组的数组,即

a = [[1,2],[3,4],[5,6]]
a.each { |value|
  value[0], value[1]
}

如果不可以改变a,那么构造一个临时的range对象,试试这个
 (0...a.size).step(2){|v|
     print a[v], a[v+1]
     puts
 }

输出
12
34
56

2009年1月09日 22:22
0 0

你不能取两次再做运算啊?

2009年1月08日 17:55
0 0

lz你想一次迭代取数组里的两个数?a.each第一次就取出1,2,第二次取出3,4?each每次迭代都是取数组的一个值的,你要一次取两个就自己写个方法嘛

2009年1月08日 12:21
0 0

难道你是要取所有奇数位的值或者所有偶数位的值???

在FOR循环里直接做一次跳过一次不就可以了?或者跳一次做一次

2009年1月08日 11:03
0 0

你所说的双数不知道是什么意思,不过看你举例的样子好像定义的数组是一盘数组吧

a = ["a", "b", "c"]

for s in a
  p s
end

2009年1月08日 10:59
0 0

如果要提取数值的话

a = {3=>6, 4=>10, 5=>15}
for v in a.values
  p v
end

2009年1月08日 10:58
0 0

ruby的数组是这样的吧

a = {3=>6, 4=>10, 5=>15}
for k in a.keys
  p k
end

2009年1月08日 10:57

相关推荐

    Ruby编程.pdf

    在示例中,`sayGoodnight`方法被调用两次,每次调用都将结果传递给`puts`方法以打印到标准输出。 ```ruby puts sayGoodnight("John-Boy") puts sayGoodnight("Mary-Ellen") ``` #### 方法调用中的圆括号 在Ruby中...

    Ruby中使用each和collect进行迭代的用法

    每次迭代时,变量`i`都会取数组中的一个元素,然后将其打印出来。 #### collect迭代器 `collect`(又名`map`)方法也是一个强大的迭代器,它可以用来处理数组中的每个元素,并返回一个新的数组。与`each`不同的是...

    ruby 程序设计

    - **命名灵感**:Ruby的名字来源于两个方面,一方面受到了Perl的影响,另一方面也希望这个名字能够简单且易于记忆。 ##### §1.3 Ruby的特点 - **简洁性**:Ruby的语法非常简洁,易于阅读和理解。 - **面向对象**:...

    基于Ruby实现pagerank算法.zip

    在Ruby中,可以使用Hash来存储邻接矩阵或邻接列表,然后编写一个循环来执行迭代过程。为了加快计算速度,可以使用Gem如Numo::NArray来处理大规模矩阵运算。 此外,需要注意的是, Pagerank算法需要处理一些特殊情况...

    Ruby-octocatalogdiff一个工具使开发人员能够更高效地测试更改Puppet清单

    首先,octocatalog-diff的工作原理是通过构建两个Puppet目录的编目(catalogs)——一个代表旧版本的配置,另一个代表新版本的配置——然后对比它们之间的差异。这种方法允许开发人员看到具体的资源(如文件、用户、...

    cell_neighborgs_exercise:Ruby练习

    在每次迭代中,都会发生以下转换: 具有少于两个活动邻居的任何活动小区将变为非活动状态。 在下一次迭代中,具有两个或三个活动邻居的任何活动单元均处于活动状态。 具有三个以上活动邻居的任何活动小区将变为非...

    Ruby-Einhorn语言无关的共享socket管理器

    套接字是网络通信中的基本概念,它是一个端点,用于两个程序之间的数据传输。在多进程环境中,通过共享套接字,不同的进程可以协同工作,接收和处理来自客户端的请求,而无需每次请求都创建新的连接,这极大地提高了...

    Dijkstra最短路径算法在不同语言中的实现_Java_Ruby_下载.zip

    在这个压缩包文件"Dijkstra最短路径算法在不同语言中的实现_Java_Ruby_下载.zip"中,包含了一个名为"dijkstras-algorithm-master"的项目,很可能包含了Dijkstra算法在Java和Ruby两种编程语言下的实现。 首先,让...

    SEIR-ruby-blackjack-1:SEIR RUTH组1 Ruby 21点游戏

    在本游戏中,我们可能需要创建一个新的随机数实例,然后利用其方法来决定每次抽取的牌。 3. **类与对象**:Ruby是面向对象的编程语言,游戏中的每一个元素(如玩家、庄家、牌堆等)都可以用类来表示,然后通过实例...

    subsets:在c c ++ python中,集合的子集变为ruby。 信息竞技场

    递归方法是从空集开始,然后对每个元素,既包含它也排除它,生成两个新的子集。迭代方法则可以通过维护一个当前子集,并在每次迭代时添加或不添加下一个元素。 PHP提供了方便的数组函数,如array_combination或...

    中科院高级软件工程期末题库

    这个命令可以用来比较任意两个版本之间的差异,也可以比较工作区与暂存区或工作区与上一个提交版本之间的差异。 3. **如果提示提交内容为空、不能提交,则最为合适的处理方式是:_____ - 正确答案是 a) 执行 `git ...

    配对

    这里,`each_cons(2)`创建了一个枚举器,它每次取出连续的两个元素`a`和`b`进行配对。 最后,Ruby的`Enumerable`模块提供了许多与配对相关的便利方法,如`map`, `select`, `reduce`等,它们都支持块的使用,可以...

    算法

    如霍夫曼编码,每次选择最小权值的两个节点合并,构建最优的前缀码。 7. **回溯法**:解决组合优化问题如八皇后问题、N皇后问题时,回溯法通过试探性地放置元素并适时撤销,来寻找所有可能的解决方案。 8. **分治...

    chromedriver.exe【说明:chrome117版本62位、谷歌浏览器驱动,自动化测试框架,Web自动化,浏览器交互】

    在“自动化测试”和“交互”这两个标签中,我们可以看到ChromeDriver在自动化测试框架中的核心作用。自动化测试允许测试团队编写脚本,这些脚本可以模拟真实用户与Web应用的交互,例如登录、浏览、搜索和提交表单。...

    haffman-coding

    - 每次从队列中取出两个频率最小的节点,合并成一个新的内部节点,其频率为两个子节点的频率之和,新节点入队。 - 重复此过程,直到队列中只剩下一个节点,即为哈夫曼树的根节点。 3. **生成编码**:从根节点出发...

    AppiumForWindows1.5

    - **敏捷开发**:在快速迭代的项目中,Appium可以帮助开发者快速验证每次更新的功能正确性。 - **持续集成/持续部署(CI/CD)**:与Jenkins、Travis CI等工具结合,实现自动化测试集成到构建流程中。 - **回归测试*...

    appium-sample-code-master

    1. **跨平台**: Appium可以同时在Android和iOS平台上运行测试,这意味着一套测试脚本可以在两个平台上复用,大大提高了效率。 2. **开放源码**: Appium的开源性质鼓励社区贡献,使得框架不断进化和优化。 3. **...

Global site tag (gtag.js) - Google Analytics