ruby学习笔记(6)-Array的使用
时间:2022-04-23
本文章向大家介绍ruby学习笔记(6)-Array的使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
ruby的数组基本使用,跟c#中的数组比起来,最不习惯的区别在于允许负索引(跟javascript到有几分相似)
arr=[3,4,5,6,7,8,9]
puts arr[0] # 3
puts arr.first # 3
puts arr[arr.length-1] # 9
puts arr[arr.size-1] # 9
puts arr.last #9
puts arr[-1] #9,下标为-1,即相当于取最后一个元素
puts arr[-2] #8,倒着取第二个数
print arr[1..3] ,"n" #456,取下标从1到3的元素
print arr[-3,2] ,"n" #倒数第三个元素开始,连续取2个元素,即7,8
复杂一点的应用如下,这里要特意指出的是,ruby中的数组天生就已经实现了堆栈与队列,这一点想得很周到.
#来自"Ruby语言入门教程v1.0"中的E8.1-3.rb
arr=[4,5,6]
print arr.join(", "),"n" # 4, 5, 6
arr[4] = "m" #将第5个元素赋值为m
print arr.join(", "),"n" #第4个元素因为没赋值,所以为空,输出结果为4, 5, 6, , m
print arr[3] ,"n" #第4个元素为空,所以输出nil
arr.delete_at(3) #删除第4个元素
print arr.join(", "),"n" #输出 4, 5, 6, m
arr[2] = ["a","b","c"] #将第3个元素"6",重新赋值为一维数组[a, b, c]
puts arr[0] # 4
puts arr[1] # 5
puts arr[2] # a,b,c 注意:用puts输出时,会自动把每个元素添加n
puts arr[3] # m
print arr.join(", "),"n" # 4, 5, a, b, c, m
print arr[2] ,"n" # abc
arr[0..1] = [7,"h","b"] #将前面二个元素4,5换成7,h,b
print arr.join(", "),"n" # 7, h, b, a, b, c, m
arr.push("b" ) #将b压入数组尾部
print arr.join(", "),"n"# 7, h, b, a, b, c, m, b
arr.delete(["a","b","c"] ) #删除数组中匹配["a","b","c"]的元素,即arr[2],注意前面的arr[2] = ["a","b","c"]
print arr.join(", "),"n" # 7, h, b, m, b
arr.delete("b") #将所有b元素删除
print arr.join(", "),"n" # 7, h, m
arr.insert(2,"d") # 在第3个元素处插入d,如果后面还有元素,则索引后移
print arr.join(", "),"n" #7, h, d, m
arr<<"f"<<2 #将元素f,2加入到数组最后,类似前面的push用法
print arr.join(", "),"n" # 7, h, d, m, f, 2
arr.pop #弹出一个元素,与前面的push结合起来,ruby中的数组本身就是一个堆栈
print arr.join(", "),"n" #7, h, d, m, f
arr.shift #元素左移一位,即实现了队列
print arr.join(", "),"n" #h, d, m, f
arr.clear #清空元素
print arr.join(", "),"n"
最后讲一个要注意的地方:array的each与delete一起用时,有时候会出现意想不到的效果!
#
arr = [1,[2,3],2,3,4,5,6]
print arr.join(","),"n" #1,2,3,2,3,4,5,6
arr.delete([2,3])
print arr.join(","),"n" #1,2,3,4,5,6
arr.each{|x| arr.delete(x)};
print arr.join(","),"n" #2,4,6 注意这里:array对象each,delete一起使用时,使用不当会把自身的"部分"元素给删除掉
- HDU 1012 u Calculate e【暴力打表,水】
- Gym 100952C&&2015 HIAST Collegiate Programming Contest C. Palindrome Again !!【字符串,模拟】
- HDU 1013 Digital Roots【字符串,水】
- Gym 100952I&&2015 HIAST Collegiate Programming Contest I. Mancala【模拟】
- bootstrap + requireJS+ director+ knockout + web API = 一个时髦的单页程序
- Gym 100952E&&2015 HIAST Collegiate Programming Contest E. Arrange Teams【DFS+剪枝】
- Gym 100952H&&2015 HIAST Collegiate Programming Contest H. Special Palindrome【dp预处理+矩阵快速幂/打表解法】
- Gym 100952G&&2015 HIAST Collegiate Programming Contest G. The jar of divisors【简单博弈】
- Gym 100952F&&2015 HIAST Collegiate Programming Contest F. Contestants Ranking【BFS+STL乱搞(map+vector)+
- Gym 100952D&&2015 HIAST Collegiate Programming Contest D. Time to go back【杨辉三角预处理,组合数,dp】
- Gym 100952B&&2015 HIAST Collegiate Programming Contest B. New Job【模拟】
- 51 Nod 1008 N的阶乘 mod P【Java大数乱搞】
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战06】给Agent添加记忆功能
- Gym 100952A&&2015 HIAST Collegiate Programming Contest A. Who is the winner?【字符串,暴力】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 抖音关键词热度搜索小程序(附源码)
- python自定义函数基础
- Python-科学计算-pandas-13-列名/删除列/替换nan
- python小程序,45行代码实现可切换版代码雨(附源码)
- R海拾遗-stringr
- stringr2
- Kubernetes 无状态应用的一般特征
- 一段简单的代码,能让所有GIF图实现时光倒流
- 你喜欢的女主播颜值多少分,今天带你测试虎牙直播女主播的颜值
- (译)kubectl 的奇技淫巧
- Python实现主播人气排行榜,带你发现人气王
- (译)Kubernetes:移除 CPU 限制,服务运行更快
- python_不误正业之贪吃蛇
- 如何让你在众多二手车中挑中满意的?python帮你实现(附源码)
- python苦短_SVM测试