卡码网语言基础课|数组的倒序与隔位输出

目录

题目描述

Python

Key Points

1.数组

2.列表

3.切片

4.扩展:序列

5.扩展:可变值和不可变值

JAVA

Key Points

1.数组

2.ArrayList

3.增强for循环


题目描述

  • 给定一个整数数组,编写一个程序实现以下功能:

    1. 将输入的整数数组倒序输出,每个数之间用空格分隔。
    2. 从正序数组中,每隔一个单位(即索引为奇数的元素),输出其值,同样用空格分隔。

  • 第一行包含一个整数 n,表示数组的长度。接下来一行包含 n 个整数,表示数组的元素。

  • 首先输出倒序排列的数组元素,然后输出正序数组中每隔一个单位的元素。

Python

Key Points

1.数组

“一组数据”,是一种用于存储相同数据类型的元素数据结构。一组按照一定次序排列的数值,数组中的每一个变量被称为元素

  • 固定大小:数组一旦声明,其大小通常是固定的,不能在运行时动态更改
  • 相同数据类型: 数组中的所有元素必须具有相同的数据类型
  • 连续存储: 数组的元素在内存中是连续存储的,班级里的同学按照顺序就坐,中间没有留空位
  • 下标访问: 数组中的元素通过下标(索引)进行访问,数组里的索引是从0开始的

2.列表

  1. 创建列表:使用方括号 []或使用 list() 创建一个列表。

    list()函数可以将其他可迭代对象转换成列表,比如字符串。

    my_list = [1, 2, 3, 4, 5]
    my_list = list()
    
    my_string = "hello"
    # 将字符串转为列表
    string_list = list(my_string)
  2. 访问列表元素:使用索引来访问列表中的元素
    my_list = [1, 2, 3, 4, 5]
    first_element = my_list[0]  # 访问第一个元素,值为1
  3. 修改列表元素:通过索引来修改列表中的元素。
    my_list = [1, 2, 3, 4, 5]
    my_list[1] = 10  # 修改第1个元素的值为10
  4. 列表长度:可以使用 len() 函数来获取列表的长度,即列表中元素的个数。
    my_list = [1, 2, 3, 4, 5]
    length = len(my_list)  # 获取列表的长度,值为5
  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]
    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
  • 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表示数组元素的类型,比如intdoublechar等。
  • 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);
}
 

  • 41
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值