ruby中数组的常用函数
在程序中定义一个数组
在程序中定义一个数组,因为我们在下面说明。
fruits = ["apple", "orange", "lemon"] scores = [55, 49, 100, 150, 0]
如果你是指使用数组的数组#[]的方法,我们将指定数目的元素的数组作为参数。我单元号是从0开始。在上面的例子中,fruits[0]返回“apple”,scores[3]将返回150。
也可以是一个(嵌套)嵌套的序列如下所示。
fruits = [3, ["apple", 250], ["orange", 400], ["lemon", 300]]p fruits[0] #=> 3 p fruits[1][1] #=> 250 p fruits[3][0] #=> "lemon"
输出数组元素的一个逗号分隔的列表
您将能够得到一个字符串分隔的任何字符串,数组中的元素使用Array#join方法。
p ["apple", "orange", "lemon"].join(',') #=> "apple,orange,lemon" p ["apple", "orange", "lemon"].join('#') #=> "apple#orange#lemon" p [55, 49, 100, 100, 0].join(',') #=> "55,49,100,100,0" p [3, ["apple", 250], ["orange", 400]].join(',') #=> "3,apple,250,orange,400"
获取在数组中的元素数
你可以得到数组中的元素个数的数组长度数组大小的方法或方法。
p ["apple", "orange", "lemon"].size #=> 3 p ["apple", "orange", "lemon"].length #=> 3 p [55, 49, 100, 100, 0].size #=> 5 p [3, ["apple", 250], ["orange", 400]].size #=> 3
将元素添加到数组
如果你想生成一个数组添加一个元素后,我们可以使用Array#<<的方法,Array#unshift方法,Array#push。
array#<<将元素追加早最后,array#unshift方法可以将元素添加到数组开头。
A = [1,2,3,4,5]#=> [1,2,3,4,5] A << 99#=> [1,2,3,4,5,99] A.Unshift (99)#=> [99,1,2,3,4,5,99]
Array#push方法可以被添加到的数组元素的结尾
A = [1,2,3,4,5] A.Push(10)#=> [1,2,3,4,5,10]
从开头或结尾的数组元素删除
在Array#shift的方法,可以检索的元素,从一开始的数组。array#pop方法是可以检索的数组中的元素。提取值的数组移位的方法,数组#pop方法,数组中的元素的提取物中删除。
a = [1,2,3,4,5]a.push(10) #=> [1, 2, 3, 4, 5, 10] p a.pop #=> 10 p a.pop #=> 5 p a #=> [1, 2, 3, 4]
提取一个子数组
你可以把部分的数组用array#slice的方法或Array#[]的方法。
a = [1,2,3,4,5]p a[0,2] #=> [1, 2] p a[1..3] #=> [2, 3, 4] p a.slice(0,2) #=> [1, 2] p a.slice(1..3) #=> [2, 3, 4]
array#slice! 方法会改变原来数组元素
a = [1,2,3,4,5]p a.slice!(0,2) #=> [1,2] p a #=> [3,4,5]p a.slice!(1,2) #=> [4,5] p a #=> [3]
填充任何数组的值
您可以使用array#fill方法填充任意元素。这种方法会改变原来数组元素。
a = [1,2,3,4,5]a.fill(255, 2,2) #=> [1, 2, 255, 255, 5] a.fill(0, 1..2) #=> [1, 0, 0, 255, 5]
清空数组
您可以用array#clear方法清空数组所有元素。
a = [1,2,3,4,5] a.clear #=> []p a #=> []
连接数组
可以使用array#+或者array#concat方法将多个数组连接
a = [1,2,3,4,5]p a + [10, 20] #=> [1, 2, 3, 4, 5, 10, 20] p a #=> [1, 2, 3, 4, 5] a.concat([10, 20]) #=> [1, 2, 3, 4, 5, 10, 20] p a #=> [1, 2, 3, 4, 5, 10, 20]
数组的交集与并集
p [1,3,5,7] | [2,4,6,8] #=> [1, 3, 5, 7, 2, 4, 6, 8] p [1,2,3,4] | [3,4,5,6] #=> [1, 2, 3, 4, 5, 6]p [1,3,5,7] & [2,4,6,8] #=> [] p [1,2,3,4] & [3,4,5,6] #=> [3, 4]
修改数组中多个元素
a = [1,2,3,4,5]a[0...2] = [111, 222, 333] p a #=> [111, 222, 333, 3, 4, 5]a[3,2] = [444,555] #=> [444, 555] p a #=> [111, 222, 333, 444, 555, 5]
将多维数组转换为一维数组
a = [1,[2,[3,4],5],[6,7]]p a.flatten #=> [1, 2, 3, 4, 5, 6, 7] a.flatten! #=> [1, 2, 3, 4, 5, 6, 7]
数组元素排序方法
p [5,1,4,2,3].sort #=> [1, 2, 3, 4, 5]a = [5,1,4,2,3] a.sort! #=> [1, 2, 3, 4, 5] p a #=> [1, 2, 3, 4, 5]p ["Orange", "Apple", "Lemon"].sort #=> ["Apple", "Lemon", "Orange"]
指定表达式的数组排序
a = ["Hitoshi,045", "Sizuo,046", "Yoshi,0138"]p a.sort{|a, b| a.split(',')[1] <=> b.split(',')[1]} #=> ["Yoshi,0138", "Hitoshi,045", "Sizuo,046"]
ar = [[2,"b"],[3,"a"],[1,"c"]]
ar.sort{|p,q|p[0]<=>q[0]} #=> [[1, "c"], [2, "b"], [3, "a"]]
ar.sort{|p,q|p[1]<=>q[1]} # => [[3, "a"], [2, "b"], [1, "c"]]
反转数组
a = [5,1,4,2,3]a.sort! #=> [1, 2, 3, 4, 5] p a.reverse #=> [5, 4, 3, 2, 1] a.reverse! #=> [5, 4, 3, 2, 1]
删除指定位置的数组元素
a = [5,1,4,2,3]a.delete_at(0) #=> 5 p a #=> [1, 4, 2, 3]a.delete_at(1) #=> 4 p a #=> [1, 2, 3]
删除匹配元素
a = ["apple", "orange", "lemon", "apple", "vine"]a.delete("apple") #=> ["apple"] p a #=> ["orange", "lemon", "vine"] a.delete("apple") { |x| puts "#{x} not found" } #=> "apple not found"
删除重复元素
a = [30,20,50,30,10,10,40,50] p a.uniq #=> [30, 20, 50, 10, 40]a = ["/tmp","/home/","/etc","/tmp"] a.uniq! #=> ["/tmp", "/home", "/etc"]
从数组中删除指定条件的元素
a = [30,100,50,80,79,40,95]a.delete_if {|x| x < 80} #=> [100, 80, 95] p a #=> [100, 80, 95]p a.reject {|x| x < 90} #=> [100, 95] p a #=> [100, 80, 95]a.reject! {|x| x < 90} #=> [100, 95] p a #=> [100, 95]a = ["Takeuchi", "Tanaka", "Satou", "Andou", "Kurasaki"]a.delete_if {|x| /^T.*/ =~ x} #=> ["Satou", "Andou", "Kurasaki"]
数组中提取指定条件的元素
a = [1, 2, 3, 4] p a.select{|x| x % 2 == 0} # => [2, 4]b = [['Taro', 'M'], ['Hanako', 'F'], ['Jiro', 'M'], ['Sachiko', 'F']] p b.select{|x| x[1]=='M'} # => [["Taro", "M"], ["Jiro", "M"]]
查找数组元素
a = ["apple",10,"orange",["lemon","vine"]]p a.index("apple") #=> 0 p a.index(10) #=> 1 p a.index(["lemon","vine"]) #=> 3 p a.index("fruit") #=> nil
搜索多维数组
a = [["apple",100],["vine",500],["orange",300]]p a.assoc("apple") #=> ["apple", 100] p a.assoc("orange") #=> ["orange", 300] p a.assoc("pear") #=> nil
创建新数组
使用array#map 或者array#collect方法
a = [10, 20, 30, 40, 50] p a.collect {|x| x*10} #=> [100, 200, 300, 400, 500] p a #=> [10, 20, 30, 40, 50]p a.map {|x| x*10} #=> [100, 200, 300, 400, 500] p a #=> [10, 20, 30, 40, 50]a.collect! {|x| x/10} #=> [1, 2, 3, 4, 5] p a #=> [1, 2, 3, 4, 5]a = [["vine", 2, 500], ["orange", 3, 100], ["apple", 10, 50]] p a.map {|x| [x[0], x[1]*x[2]]} #=> [["vine", 1000], ["orange", 300], ["apple", 500]]
迭代数组中各个元素
["Taro", "Hanako", "Ichiro"].each {|x| puts "Hello, #{x}"} #=> "Hello, Taro" #=> "Hello, Hanako" #=> "Hello, Ichiro"sum = 0 [1,2,3,4,5,6,7,8,9,10].each {|x| sum += x} p sum #=> 55
还可以使用Array#reverse_each方法反转元素迭代
随机提取数组元素
if RUBY_VERSION < '1.9.0'class Arraydef choiceat( rand( size ) )endend end
[1, 2, 3].choice #=> 3 [1, 2, 3].choice #=> 1
用%w方式你可以把用分割符号包含的;用空格隔开的不同字符串定义为一个数组:
words = %w[this is a test] # 等同于: ['this', 'is', 'a', 'test']
open = %w| ( [ { < | # 等同于: ['(', '[', '{', '<']
white = %W(\s \t \r \n) # 等同于: ["\s", "\t", "\r", "\n"]
用%w或%W定义数组的方式类似于用%q和%Q定义字符串,分界符号的规则也一样,在分界符号中的元素无需分号('',“”)包含,无需逗号分隔,不同元素之间用空格隔开。
你还可以通过Array.new 来定义数组,这种方式可以让你通过程序化的手段还初始化数组:
转载于:https://www.cnblogs.com/wangyuyu/p/3243178.html
ruby中数组的常用函数相关推荐
- Ruby中Time的常用函数
Time的常用函数 时间对象. Time.now返回当前时间. 1.Time.at Time.at(time[, usec]) 返回time所指时间的Time对象. time可以是Time对象,也可以 ...
- ipad php mysql_PHP中的MYSQL常用函数
PHP中的MYSQL常用函数 1.mysql_connect()-建立数据库连接 格式: resource mysql_connect([string hostname [:port] [:/path ...
- C++中有关queue常用函数的用法及其注意要项
11:C++中有关queue常用函数的用法及其注意要项 #include<bits/stdc++.h> using namespace std; int main(){queue < ...
- C++string类常用函数 c++中的string常用函数用法总结
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类 ...
- (numpy)python中Array的常用函数
python中Array的常用函数 1.unique 2.sum 3.max 1.unique a = np.random.randint(10, size=20).reshape(4,5) a &g ...
- C++中string类函数常用函数大全
最近,写各种关于字符串的问题,遇到不少题目解法或多或少的调用各种方法,今个发现了个大佬的总结,自己码一下保存(自己的编译器慢慢看,看文档,这谁看的进去这么多..) 大佬原文链接在最下面 string类 ...
- php数组(数组的定义、使用、删除数组、数组操作符、数组排序、数组元素查找、数组的常用函数)
什么是数组 数组是一种数据类型,在PHP中广泛应用. 数组是一个可以存储一组或一系列数值的变量. 在PHP中,数组中的元素分为两个部分,分别为键(Key)和值(Value). "键" ...
- oracle中110个常用函数
主要介绍了oracle中110个常用函数,方便大家编写出更强大的sql语句,需要的朋友可以参考下. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,a ...
- PP实施经验分享(5)——SAP中MD04显示常用函数(读取SAP MRP运行数据)
PP实施经验分享(5)--SAP中MD04显示常用函数(读取SAP MRP运行数据) SAP实施过程中,经常会遇到用户对于现有MD04标准功能展示有一定的抱怨,不符合我们查看的习惯,经常会提出相关报表 ...
最新文章
- 【百度地图API】如何制作班级地理通讯录?LBS通讯录
- 广告基本知识-广告的目的和效果
- 错误解决 :Microsoft Visual C++ 14.0 is require Microsoft Visual C++ Builder 包丢失或者损坏
- Android7.1 Presentation双屏异显原理分析
- ITK:使用FFT的归一化相关
- redis、memcache、mongoDB 对比
- 请求接口时使用时间戳
- linux-0.11内核 调试教程+GCC源代码
- 电脑qq收藏在哪里打开_外贸询盘怎么来?零成本用Linkedin批量开发客户!外贸人收藏...
- RabbitMQ核心概念和AMQP协议(二)
- c语言异或运算符_计算机中C语言的-运算符
- 阿里巴巴发布招聘微博:新财年新增超过1800岗位需求
- 宜信PaaS平台基于Calico的容器
- Keymob锁屏:三屏切换 开启移动入口平台新时代
- 摸鱼:窗口最小化等快捷键
- Android Shape 详细使用
- 群晖外网映射网络盘符访问教程[转]
- 全球与中国消防系统市场现状及未来发展趋势
- 卡马克在光线追踪,id tech6,射线跟踪,控制台,物理学等的谈话 第一部分
- java runnable main_【BUG】”main” prio=5 tid=1 RUNNABLE
热门文章
- extern 关键字的作用
- Qt 模态和非模态窗口的创建与关闭
- 吴恩达神经网络和深度学习-学习笔记-45-完全版YOLO算法
- OPNET网络仿真分析-目 录
- Git使用-.gitignore文件(使一些文件不上传到git)
- python机器学习库keras——线性回归、逻辑回归、一般逻辑回归
- matlab2c使用c++实现matlab函数系列教程-sqrt函数
- matlab2c使用c++实现matlab函数系列教程-raylpdf函数
- jquery中的attr函数attr(name)、attr(key,value)、attr(properties)、attr(key,fn)、removeAttr
- quartus仿真系列3:74283的4位并行加法器