从Python看C语言(列表&字典篇)

您所在的位置:网站首页 Java中的数组与C语言中的数组有什么异同 从Python看C语言(列表&字典篇)

从Python看C语言(列表&字典篇)

2024-07-15 16:57| 来源: 网络整理| 查看: 265

本篇博客来聊一下列表和字典,大致对应C语言中的数组与结构体,但它们之间语法规则仍有不少区别,不禁感慨,Python真是个好东西,唉,少年不知勤学早,白首方悔学Python迟~π__π

Part 1.一维列表

列表与数组有什么区别呢?如果C/C++的数组是纯净物的话,那么Python的列表就是混合物(PS:化学警告)。数组只能装有统一数据类型的元素,因此,有int、char、double、float型数组之分;而列表却可以装有不同数据类型的元素。对于数组下标,C/ C++和Python都不允许除int型以外的数据作为下标,但C语言数组的下标>=0,Python的下标在遵循以0为首元素下标的规则条件下,还允许负数作为下标,如下图所示:

 

 

Python的列表可以理解为一种环状的结构,首尾相接,0是首位元素下标,-1则是首元素上一位元素的下标,即倒数第一位元素的下标,-2则是倒数第二位元素的下标,以此类推。然而,即使是一个环状,数组下标的范围也只限一圈的循环,比如上面定义的array数组,只有3个元素,-1是末位元素2.5的下标,那么再加一圈,-4可不可以是2元素2.5的下标呢?答案是不行,-4已超出列表元素下标的范围,同样,我们也知道,array[3]也是不成立的。

 

 

想要删除数组中的一个值,并让其之后的元素都往前移一位,数组大小也减去1,该怎么办呢?想要在数组中插入一个值,数组大小增加1,又该怎么办?C++提供了vector动态数组,可以解决这种问题,比如对于数组{1,2,3,4,5},我想把数组中的第四个元素删去(元素下标为3),然后在数组首位元素前插入int型元素9,可以使用vector的方法:

#include #include using namespace std; const int N=5; int A[N]={1,2,3,4,5}; vectorvec(A,A+N);//声明并用A数组元素初始化vec向量 int main(){ vec.erase(vec.begin()+3);//删除指定元素vec[3] for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3