当前位置:首页>python>Python第七天:列表是批量数据的“万能容器”,增删改查超简单,对比C语言数组太灵活

Python第七天:列表是批量数据的“万能容器”,增删改查超简单,对比C语言数组太灵活

  • 2026-09-02 19:27:08
Python第七天:列表是批量数据的“万能容器”,增删改查超简单,对比C语言数组太灵活

大家好,我是一个工作20多年的老程序员,把自己工作中积累的经验慢慢给大家分享

-begin-

处理数据时,经常会遇到一组同类的数据,比如一个班级的成绩、一串名字。如果每个数据都用单独的变量存储,不仅麻烦,还很难批量操作。列表(List)就是为了集中管理这类“批量数据”而设计的,它能像一个“容器”一样装下多个数据,方便我们增删、查询、遍历。C语言中类似的结构是数组,但Python的列表更灵活,能存放不同类型的数据,操作也更简单。

第七天:列表(List)——批量数据的“容器”

Python例子:

# 创建列表

scores = [85, 92, 78, 90, 88]  # 存放整数的列表

mixed = [10, "苹果", 3.14, True]  # 可以存放不同类型的数据

# 访问列表元素(通过索引,索引从0开始)

print("scores的第一个元素:", scores[0])  # 85

print("mixed的第二个元素:", mixed[1])    # 苹果

# 修改元素

scores[2] = 80  # 把索引2的元素(原78)改成80

print("修改后的scores:", scores)  # [85, 92, 80, 90, 88]

# 增加元素

scores.append(95)  # 在列表末尾添加95

print("添加后的scores:", scores)  # [85, 92, 80, 90, 88, 95]

scores.insert(1, 88)  # 在索引1的位置插入88

print("插入后的scores:", scores)  # [85, 88, 92, 80, 90, 88, 95]

# 删除元素

del scores[3]  # 删除索引3的元素

print("删除后的scores:", scores)  # [85, 88, 92, 90, 88, 95]

scores.remove(88)  # 删除第一个值为88的元素

print("移除后的scores:", scores)  # [85, 92, 90, 88, 95]

# 列表长度

print("scores的长度:", len(scores))  # 5

# 遍历列表

print("遍历scores:")

for s in scores:

   print(s, end=" ")  # 85 92 90 88 95

运行结果:

scores的第一个元素: 85

mixed的第二个元素: 苹果

修改后的scores: [85, 92, 80, 90, 88]

添加后的scores: [85, 92, 80, 90, 88, 95]

插入后的scores: [85, 88, 92, 80, 90, 88, 95]

删除后的scores: [85, 88, 92, 90, 88, 95]

移除后的scores: [85, 92, 90, 88, 95]

scores的长度: 5

遍历scores:

85 92 90 88 95

详细分析:

1.创建列表:用方括号[]包裹元素,元素之间用逗号分隔。列表可以存放整数、字符串、布尔值等不同类型的数据,这一点比C语言的数组灵活得多。
2.访问元素:通过“索引”访问,索引从0开始(第一个元素索引为0,第二个为1,以此类推)。如果索引超出范围(比如列表只有5个元素,访问索引5),会报错。
3.修改元素:直接通过列表名[索引] = 新值修改对应位置的元素。
4.增加元素:
◦append(值):在列表末尾添加一个元素,最简单常用。
◦insert(索引, 值):在指定索引位置插入元素,原位置及后面的元素会自动后移。
5.删除元素:
◦del 列表名[索引]:删除指定索引的元素。
◦remove(值):删除列表中第一个等于该值的元素(如果有多个)。
6.其他常用操作:
◦len(列表名):获取列表长度(元素个数)。
◦遍历列表:用for 变量 in 列表可以依次取出每个元素。

对比C语言:

C语言中用数组实现类似功能(只能存同类型数据):

#include <stdio.h>

int main() {

   // 创建数组(必须指定类型和长度)

   int scores[5] = {85, 92, 78, 90, 88};  // 只能存放整数

   // 不能像Python那样存放混合类型数据

   // 访问元素(索引从0开始)

   printf("scores的第一个元素:%d\n", scores[0]);  // 85

   // 修改元素

   scores[2] = 80;

   printf("修改后的scores[2]:%d\n", scores[2]);  // 80

   // 增加元素(数组长度固定,需手动扩容,很麻烦)

   // 这里简化处理:创建新数组,复制旧元素,添加新元素

   int new_scores[6];

   for (int i = 0; i < 5; i++) {

       new_scores[i] = scores[i];

   }

   new_scores[5] = 95;  // 添加95

   printf("新数组最后一个元素:%d\n", new_scores[5]);  // 95

   // 数组长度(需手动记录或计算,没有现成函数)

   int len = sizeof(scores) / sizeof(scores[0]);  // 5

   printf("scores的长度:%d\n", len);

   // 遍历数组

   printf("遍历scores:");

   for (int i = 0; i < len; i++) {

       printf("%d ", scores[i]);  // 85 92 80 90 88

   }

   return 0;

}

主要区别:

7.灵活性:Python列表可以存放不同类型的数据,长度动态变化(增删元素自动调整);C语言数组只能存放同类型数据,长度固定,增删元素需要手动处理(如创建新数组),非常繁琐。
8.操作便捷性:Python列表有append、insert、remove等内置方法,操作简单;C语言数组没有这些方法,增删元素需要通过循环复制,容易出错。
9.长度获取:Python用len(列表)直接获取长度;C语言需要通过sizeof(数组)/sizeof(元素类型)计算,不直观。
10.初始化:Python列表初始化时可以不指定长度;C语言数组必须指定长度(或通过初始化列表隐式确定)。
-end-

如果文章对你有提升,帮忙点赞,分享,关注。非常感谢

最新文章

随机文章