目录
题目描述
-
给定一个整数数组,编写一个程序实现以下功能:
1. 将输入的整数数组倒序输出,每个数之间用空格分隔。
2. 从正序数组中,每隔一个单位(即索引为奇数的元素),输出其值,同样用空格分隔。 -
第一行包含一个整数 n,表示数组的长度。接下来一行包含 n 个整数,表示数组的元素。
-
首先输出倒序排列的数组元素,然后输出正序数组中每隔一个单位的元素。
Python
Key Points
1.数组
“一组数据”,是一种用于存储相同数据类型的元素的数据结构。一组按照一定次序排列的数值,数组中的每一个变量被称为元素
- 固定大小:数组一旦声明,其大小通常是固定的,不能在运行时动态更改
- 相同数据类型: 数组中的所有元素必须具有相同的数据类型
- 连续存储: 数组的元素在内存中是连续存储的,班级里的同学按照顺序就坐,中间没有留空位
- 下标访问: 数组中的元素通过下标(索引)进行访问,数组里的索引是从0开始的
2.列表
- 创建列表:使用方括号
[]
或使用list()
创建一个列表。list()
函数可以将其他可迭代对象转换成列表,比如字符串。my_list = [1, 2, 3, 4, 5] my_list = list() my_string = "hello" # 将字符串转为列表 string_list = list(my_string)
- 访问列表元素:使用索引来访问列表中的元素
my_list = [1, 2, 3, 4, 5] first_element = my_list[0] # 访问第一个元素,值为1
- 修改列表元素:通过索引来修改列表中的元素。
my_list = [1, 2, 3, 4, 5] my_list[1] = 10 # 修改第1个元素的值为10
- 列表长度:可以使用
len()
函数来获取列表的长度,即列表中元素的个数。my_list = [1, 2, 3, 4, 5] length = len(my_list) # 获取列表的长度,值为5
- 其他操作列表的方法
append(value)
:将新的元素添加到列表的末尾。my_list = [1, 2, 3, 4, 5] my_list.append(6) # my_list现在是[1,2,3,4,5,6]
insert(index, value)
: 在指定位置插入元素。my_list = [1, 2, 3, 4, 5] my_list.insert(0, 6) # 在索引0处插入6, 现在是 [6,1, 2, 3, 4, 5]
pop(index)
: 删除并返回指定索引index
位置的元素。remove(value): 移除值为value的元素,但是如果有多个时,只删除第一个。
remove(value)
: 移除值为value
的元素,但是如果有多个时,只删除第一个。my_list = [1, 2, 2, 3,4,5] my_list.remove(2) # 删除第一个值为2的元素, 现在是 [1, 2, 3, 4, 5]
index(value)
: 返回指定值value
的索引位置, 如果有多个时,返回第一个。my_list = [1, 2, 3, 4, 5, 2] element_index = my_list.index(2) # 返回2的第一个索引位置, 即 索引 1
reverse()
: 反转列表的顺序。my_list = [1, 2, 3, 4, 5] my_list.reverse() # 反转列表元素的顺序, 现在是 [5, 4, 3, 2, 1]
sort()
: 按照升序排序列表。my_list = [3, 1, 2, 5, 4] my_list.sort() # 按升序排序, 现在是 [1, 2, 3, 4, 5]
3.切片
my_list(startIndex: endIndex: step)
startIndex
是切片的开始索引,endIndex
是切片的结束索引,step
是可选参数
- 如果开始位置和结束位置都传递,表示从切片的
startIndex
位置切到endIndex
所在的位置 - 如果不传递开始位置,即
list[ : endIndex]
,表示从列表的开头切到endIndex
所在的位置 - 如果不传递结束位置,即
list[startIndex : ]
,表明从列表的startIndex
位置切到末尾 - 如果开始位置和结束位置都不传递,即
list[ : ]
, 表明从列表的开头切到末尾,相当于整个列表。
负数索引,-1 表示最后一个元素,-2表示倒数第二个元素
sublist = my_list[-2: ] # 倒数第二个元素一直到列表的末尾
# sublist现在是[6, 7]
sublist = my_list[-3:-1] # 倒数第三个到倒数第二个元素,不包括最后一个元素
# sublist现在是[5, 6]
4.扩展:序列
"序列" 是一种通用的数据类型,用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引), 并且序列中的数据会按照添加的顺序来分配索引。
- 列表:由方括号
[]
包裹起来,元素与元素之间用逗号,
分隔。列表是可变的,可以进行增加、删除和修改操作。 - 元组:由圆括号
()
包裹起来,元素与元素之间用逗号,
分隔。元组是不可变的,一旦创建后,其元素不可更改。 - 字符串:由引号(单引号或者双引号)包裹起来的字符集合,元素是字符,字符串也是不可变的。
# 列表
my_list = [1, 2, 3]
# 元组
my_tuple = (1, 2, 3)
# 字符串
my_string = "hello"
5.扩展:可变值和不可变值
- 可变:创建后,可以在原地进行修改、包括列表、字典、集合等(后面会介绍字典和集合这两种数据类型)。
- 不可变: 一旦创建,就不能被修改,包括整数、浮点数、字符串、元组等
JAVA
Key Points
1.数组
数组是一种用于存储相同数据类型的元素的数据结构。
声明数组的方式为dataType[] arrayName
或者为dataType arrayName[]
dataType
表示数组元素的类型,比如int
、double
、char
等。arrayName
是为数组指定的名称,类似于变量名称。
int[] nums; // 声明一个整数数组
double scores[]; // 声明一个浮点数数组
int[] numbers = new int[3]; // 动态初始化一个包含3个整数的数组
//静态初始化:在声明数组时,同时为数组分配内存并指定初始值
int[] numbers = {1, 2, 3}; // 静态初始化一个包含初始值的整数数组
int length = nums.length; // 获取数组的长度(值为3)
int value = arr[2]; // 获取数组 arr 的第三个元素的值,即 3
2.ArrayList
ArrayList
是 java.util
包中的一个类,可以在运行时对其动态添加和删除元素以满足我们的操作需要
集合类只能存储对象而不是原始数据类型。
如果你想在 ArrayList
中存储整数,不能直接存储 int
类型,而是要使用它的包装类 Integer
ArrayList<Integer> nums = new ArrayList<Integer>();
- 添加元素
nums.add(10); nums.add(100); nums.add(1000);
- 获取元素
int firstNumber = nums.get(0); // 获取第一个元素 1
- 删除元素
nums.remove(1); // 删除第二个元素
- 获取中的元素数量
int size = nums.size(); // 获取 ArrayList 的大小
3.增强for循环
for (elementType element : collection) {
// 在此处处理 element
}
elementType
是元素的数据类型element
是在每次迭代中表示一个元素的变量collection
是要迭代的数组或其他的对象
for (String name : names) {
System.out.println(name);
}