热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RubyArray

RubyArray创建数组irb(main):001:0a[1,2,3][1,2,3]irb(main):002:0b[1,2,3.14][1,2,3.14]

Ruby Array

创建数组

irb(main):001:0> a=[1,2,3]
=> [1, 2, 3]
irb(main):002:0> b=["1",2,3.14]
=> ["1", 2, 3.14]
irb(main):003:0> c=Array.new
=> []
irb(main):004:0> d=Array.new(5)
=> [nil, nil, nil, nil, nil]
irb(main):005:0> e=Array.new(5,0)
=> [0, 0, 0, 0, 0]
irb(main):006:0> la=%w(Ruby Perl Python Scheme Pike REBOL)
=> ["Ruby", "Perl", "Python", "Scheme", "Pike", "REBOL"]
irb(main):007:0> li=%i(Ruby Perl Python Scheme Pike REBOL)
=> [:Ruby, :Perl, :Python, :Scheme, :Pike, :REBOL]
irb(main):008:0> color_table={black:"#000000",white:"#FFFFF"}
=> {:black=>"#000000", :white=>"#FFFFF"}
irb(main):009:0> color_table.to_a
=> [[:black, "#000000"], [:white, "#FFFFF"]]
irb(main):010:0> column="1 2 3 4 5 8 0".split
=> ["1", "2", "3", "4", "5", "8", "0"]

索引的使用

li[0]
=> :Ruby
irb(main):012:0> li[4]
=> :Pike
irb(main):013:0> a[1..2]
=> [2, 3]
irb(main):014:0> a[0...3]
=> [1, 2, 3]
irb(main):015:0> a[0..3]
=> [1, 2, 3]
irb(main):016:0> a[0..2]
=> [1, 2, 3]
irb(main):017:0> a[0,2]
=> [1, 2]
irb(main):018:0> a[0,3]
=> [1, 2, 3]
irb(main):019:0> a[-1]
=> 3
irb(main):020:0> a[-1,2]
=> [3]
irb(main):021:0> a[-2]
=> 2
irb(main):022:0> a[-3]
=> 1
irb(main):023:0> a[-4]
=> nil
irb(main):024:0> li
=> [:Ruby, :Perl, :Python, :Scheme, :Pike, :REBOL]
irb(main):025:0> li[0]=:china
=> :china
irb(main):026:0> li
=> [:china, :Perl, :Python, :Scheme, :Pike, :REBOL]
irb(main):027:0> li[2,0]=[:X,:Y]
=> [:X, :Y]
irb(main):028:0> li
=> [:china, :Perl, :X, :Y, :Python, :Scheme, :Pike, :REBOL]

将数组用作集合

&: 集合的交,|:集合的并,-:集合的差,+:集合的连接

irb(main):029:0> ary1="a b c".split
=> ["a", "b", "c"]
irb(main):030:0> ary2="b c d".split
=> ["b", "c", "d"]
irb(main):031:0> ary1 & ary2
=> ["b", "c"]
irb(main):032:0> ary1 | ary2
=> ["a", "b", "c", "d"]
irb(main):033:0> ary1 - ary2
=> ["a"]
irb(main):034:0> ary2- ary1
=> ["d"]
irb(main):035:0> ary1 + ary2
=> ["a", "b", "c", "b", "c", "d"]

数组用作栈、队列

a=[1,3,2,4]
a.push 99 #a=[1,2,3,4,99]
a.pop #99 a=[1,2,3,4]

队列

a=[1,2,3,4]
a.push 99 #a=[1,2,3,4,99]
a.shift #1 a=[2,3,4,99]

数组的主要方法

irb(main):042:0> a
=> [2, 46, 7, 8]
irb(main):043:0> a.unshift 10
=> [10, 2, 46, 7, 8]
irb(main):044:0> a<<1000
&#61;> [10, 2, 46, 7, 8, 1000]
irb(main):045:0> a.push 1001
&#61;> [10, 2, 46, 7, 8, 1000, 1001]
irb(main):046:0> a.concat "16 15 11".split
&#61;> [10, 2, 46, 7, 8, 1000, 1001, "16", "15", "11"]
irb(main):047:0> a&#43; [111,112,113]
&#61;> [10, 2, 46, 7, 8, 1000, 1001, "16", "15", "11", 111, 112, 113]
irb(main):048:0> ary&#61;[13,nil,666,nil,777,nil,999,nil]
&#61;> [13, nil, 666, nil, 777, nil, 999, nil]
irb(main):049:0> ary.compact
&#61;> [13, 666, 777, 999]
irb(main):050:0> a.delete 111
&#61;> nil
irb(main):051:0> a
&#61;> [10, 2, 46, 7, 8, 1000, 1001, "16", "15", "11"]
irb(main):052:0> a.delete_at 2
&#61;> 46
irb(main):053:0> a
&#61;> [10, 2, 7, 8, 1000, 1001, "16", "15", "11"]
irb(main):054:0> a.delete_if{|item| item.class&#61;&#61;String}
&#61;> [10, 2, 7, 8, 1000, 1001]
irb(main):055:0> a.reject {|item| item>&#61;1000}
&#61;> [10, 2, 7, 8]
irb(main):056:0> a.slice 1,2
&#61;> [2, 7]
irb(main):057:0> d&#61;[1,1,1,3,4,6,6,8,9]
&#61;> [1, 1, 1, 3, 4, 6, 6, 8, 9]
#获取只出现一次的元素
irb(main):059:0> d.uniq
&#61;> [1, 3, 4, 6, 8, 9]
irb(main):060:0> d.shift
&#61;> 1
irb(main):061:0> d
&#61;> [1, 1, 3, 4, 6, 6, 8, 9]
irb(main):062:0> a.pop
&#61;> 1001
irb(main):063:0> a
&#61;> [10, 2, 7, 8, 1000]

collect,map,fill

irb(main):064:0> arr&#61;[6,4,3,6,9,8]
&#61;> [6, 4, 3, 6, 9, 8]
irb(main):065:0> arr.collect{|item| item**2}
&#61;> [36, 16, 9, 36, 81, 64]
irb(main):066:0> a.map{|item| item*2}
&#61;> [20, 4, 14, 16, 2000]
irb(main):067:0> arr.map{|item| item*2}
&#61;> [12, 8, 6, 12, 18, 16]
irb(main):068:0> x&#61;Array.new
&#61;> []
irb(main):071:0> x<<1
&#61;> [1]
irb(main):072:0> x<<111
&#61;> [1, 111]
irb(main):073:0> x<<222
&#61;> [1, 111, 222]
irb(main):074:0> x.fill(0) #将所有值替换为0
&#61;> [0, 0, 0]
irb(main):075:0> y&#61;[1,111,222]#
&#61;> [1, 111, 222]
irb(main):076:0> y.fill(-1,1) #将索引为1处的值替换为-1
&#61;> [1, -1, -1]
irb(main):077:0> y.fill 1000,1,1 #fill(value,begin,len)
&#61;> [1, 1000, -1]

flatten,sort,sort_by

irb(main):078:0> e&#61;[]
&#61;> []
irb(main):079:0> e<<[1,3]
&#61;> [[1, 3]]
irb(main):080:0> e<<[2,4]
&#61;> [[1, 3], [2, 4]]
irb(main):081:0> e<<[9,0]
&#61;> [[1, 3], [2, 4], [9, 0]]
irb(main):082:0> e.flatten
&#61;> [1, 3, 2, 4, 9, 0]
irb(main):083:0> e.reverse
&#61;> [[9, 0], [2, 4], [1, 3]]
irb(main):084:0> f&#61;e.flatten
&#61;> [1, 3, 2, 4, 9, 0]
irb(main):085:0> f.sort{|i,j| i<&#61;>j}
&#61;> [0, 1, 2, 3, 4, 9]
irb(main):086:0> f.sort_by{|item| -item}
&#61;> [9, 4, 3, 2, 1, 0]

获取数组的各元素值

list&#61;[1,3,5,7,9]
&#61;> [1, 3, 5, 7, 9]
irb(main):094:0> sum&#61;0
&#61;> 0
irb(main):095:0> list.each do |item|
irb(main):096:1* sum&#43;&#61;item
irb(main):097:1> end
&#61;> [1, 3, 5, 7, 9]
irb(main):098:0> sum
&#61;> 25
irb(main):099:0> list.each_with_index do |item,index|
irb(main):100:1* p item,index end
1
0
3
1
5
2
7
3
9
4

访问多个数组

irb(main):101:0> ary1&#61;[1,2,3]
&#61;> [1, 2, 3]
irb(main):102:0> ary2&#61;[100,200,300]
&#61;> [100, 200, 300]
irb(main):103:0> ary3&#61;[5,4,3]
&#61;> [5, 4, 3]
irb(main):104:0> ary1.zip ary2,ary3 do |a,b,c|
irb(main):105:1* p a.to_s&#43;" "&#43;b.to_s&#43;" "&#43;c.to_s end
"1 100 5"
"2 200 4"
"3 300 3"
&#61;> nil

转:https://www.cnblogs.com/never-ever/p/5190016.html



推荐阅读
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文探讨了在多种编程语言中实现Hello World输出的方法,从经典的C语言到现代的JavaScript,每种语言都有其独特的表达方式。 ... [详细]
  • 本文探讨了如何使用ls -lsh命令排除总大小输出,仅显示文件大小的方法,并提供了几种实现这一目标的解决方案。 ... [详细]
  • MongoDB的核心特性与架构解析
    本文深入探讨了MongoDB的核心特性,包括其强大的查询语言、灵活的文档模型以及高效的索引机制。此外,还详细介绍了MongoDB的体系结构,解释了其文档、集合和数据库的层次关系,并对比了MongoDB与传统关系型数据库(如MySQL)的逻辑结构。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • 本文探讨了如何在TWiki中配置自定义标记,以实现特定字符串(如#12345)自动转换为指向票务系统的超链接。此功能类似于在其他平台上的实现,旨在提高信息检索效率。 ... [详细]
  • Git支持通过自定义钩子来扩展其功能,这些钩子根据触发条件的不同,可以分为客户端和服务器端两种类型。客户端钩子通常与本地操作相关联,如提交代码或合并分支;而服务器端钩子则与远程仓库的交互有关。 ... [详细]
author-avatar
重庆制造漫画社
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有