JAVA像Python切片取数组_区分MATLAB C Python中数组的索引及切片

**MATLAB C Python中的索引及切片**

在不同的语言里,数组的下标索引及切片存在区别,如若混淆则会产生无法察觉的错误。

一、下标索引

1.1

对于MATLAB中数组索引,从1开始,到N结束,如:

data(1:N) %表示data的第1到第N个元素

1.2

对于C系列语言中数组索引,从0开始,到N-1结束,如:

int data[N][N]; //定义有N*N个元素的二维data数组

data[1,N-1] //表示data的第2行、第N列的元素

1.3

对于Python语言中数组索引,正序:从0开始,到N-1结束;逆序:从-1开始,到-N结束。如:

range(5) #表示[0,1,2,3,4]

data[0] #表示data的第一个元素

二、切片

2.1

对于MATLAB中数组切片:

%data从第beg个元素取到第end个元素,包括第end元素

data[beg:step:end]

%行列切片

data(:,col);data(row,:)

2.2

对于C系列语言中数组切片:

//data从第beg+1个元素取到第end个元素,包括第end元素

for(int i=beg;i

//行列切片仍使用循环遍历

2.3

对于Python语言中数组切片:

#data从第beg+1个元素取到第end个元素,不包括第end+1元素

#当step等于负数的时候,从右向左取数

data[beg:end:step]

[m : ] 代表列表中的第m+1项到最后一项

[ : n] 代表列表中的第一项到第n项

eg.

week=[1,2,3,4,5,6,7]

print(week[2:5],'\n',week[:6],'\n',week[:-3],'\n',week[-3:])

输出:

[3, 4, 5]

[1, 2, 3, 4, 5, 6]

[1, 2, 3, 4]

[5, 6, 7]

还有一种双冒号的切片。

即: data[::step]

step为正时,从左向右每隔step个数取一个

step为负时,从右向左每隔step个数取一个

eg.

week=[1,2,3,4,5,6,7]

print(week[::2],'\n',week[::-2])

输出:

[1, 3, 5, 7]

[7, 5, 3, 1]

本文地址:https://blog.csdn.net/weixin_44162044/article/details/107079298

希望与广大网友互动??

点此进行留言吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值