当前位置: 首页 > news >正文

Python 入门教程(4)数据类型 | 4.6、列表

文章目录

  • 一、列表
    • 1、定义
    • 2、创建列表
      • 2.1、使用方括号创建
      • 2.2、使用`list()`函数创建
    • 3、访问列表元素
    • 4、遍历列表
      • 4.1、使用`for`循环直接遍历
      • 4.2、使用`enumerate()`函数遍历
      • 4.3、使用`range()`和`len()`遍历(不推荐,但可行)
    • 5、修改列表
      • 5.1、直接修改列表元素
      • 5.2、添加和删除列表元素
    • 6、常用操作
      • 6.1、切片
      • 6.2、连接与复制
      • 6.3、成员操作符

前言:

在Python中,列表(List)是一种非常重要的数据结构,它用于存储一系列有序的元素。这些元素可以是不同类型的,比如整数、浮点数、字符串,甚至是其他列表(即列表的嵌套)。列表是可变的,意味着我们可以在创建后添加、删除或修改其中的元素。

一、列表

1、定义

列表是由一系列变量组成的可变序列容器,具备下面这些特点:

  • 有序性: 列表中的元素按照插入顺序进行排序,可以通过索引来访问和修改元素。
  • 可变性: 列表是可变的,意味着可以修改列表中的元素,添加新元素或删除现有元素。
  • 动态性: 列表的长度是动态的,可以根据需要动态地扩展和缩小。
  • 可嵌套性: 列表可以嵌套其他列表,形成多维数据结构。

2、创建列表

2.1、使用方括号创建

列表可以使用方括号[]来创建,元素之间用逗号,分隔,例如:

# 创建一个包含不同类型元素的列表  
my_list = [1, "Hello", 3.14, [1, 2, 3]]  
print(my_list) # 输出结果:[1, 'Hello', 3.14, [1, 2, 3]]

2.2、使用list()函数创建

可以使用list()构造函数创建列表,例如:

list2 = list((1, 3.14, ["hello", "world"]));
print(list2) # 输出结果:[1, 3.14, ['hello', 'world']]

注意: 在使用list()函数创建列表时,一定要注意双括号。

3、访问列表元素

列表中的元素可以通过索引来访问,索引从0开始。例如,要访问my_list中的第一个元素,可以使用:

print(my_list[0])  # 输出: 1

如果要访问最后一个元素,可以使用负索引-1,倒数第二个元素则是-2,依此类推。

print(my_list[-1])  # 输出: [1, 2, 3]

4、遍历列表

遍历列表(List)中的元素是一个非常常见的操作。有几种不同的方式可以实现这一点。

4.1、使用for循环直接遍历

这是最直接的方法,使用for循环直接遍历列表中的每个元素。

my_list = [1, 2, 3, 4, 5]  
for element in my_list:  print(element)

4.2、使用enumerate()函数遍历

如果需要在遍历列表的同时获取元素的索引和值,可以使用enumerate()函数。

my_list = ['a', 'b', 'c', 'd']  
for index, element in enumerate(my_list):  print(f"Index: {index}, Element: {element}")

4.3、使用range()len()遍历(不推荐,但可行)

虽然这不是遍历列表元素的推荐方式(因为它不直接访问元素,而是通过索引),但在某些特定情况下可能会用到。

my_list = ['apple', 'banana', 'cherry']  
for i in range(len(my_list)):  print(my_list[i])

5、修改列表

5.1、直接修改列表元素

由于列表是可变的,可以直接修改列表中的元素。例如,将my_list中的第一个元素修改为"Python":

my_list[0] = "Python"  
print(my_list)  # 输出: ['Python', 'Hello', 3.14, [1, 2, 3]]

5.2、添加和删除列表元素

  • 添加元素:
    • 使用append()方法可以在列表末尾添加一个元素。
    • 使用insert(i, x)可以在指定位置i插入元素x。
my_list.append(True)  # 在末尾添加True  
print(my_list)  # 输出: ['Python', 'Hello', 3.14, [1, 2, 3], True]  my_list.insert(1, "World")  # 在索引1的位置插入"World"  
print(my_list)  # 输出: ['Python', 'World', 'Hello', 3.14, [1, 2, 3], True]
  • 删除元素:
    • 使用remove(x)可以删除列表中第一个值为x的元素。
    • 使用pop([i])可以删除并返回列表中指定索引i的元素,如果不指定索引,则默认删除并返回最后一个元素。
    • 使用del语句也可以删除元素。
my_list.remove("Hello")  # 删除第一个'Hello'  
print(my_list)  # 输出: ['Python', 'World', 3.14, [1, 2, 3], True]  print(my_list.pop(1))  # 删除索引为1的元素并打印,即'World'  
print(my_list)  # 输出: ['Python', 3.14, [1, 2, 3], True]  del my_list[0]  # 删除索引为0的元素  
print(my_list)  # 输出: [3.14, [1, 2, 3], True]

6、常用操作

6.1、切片

Python的切片(Slicing)操作是一种强大的工具,用于从序列类型(如列表、元组、字符串、字节序列等)中选取一个范围内的元素。切片操作通过指定开始和结束的索引(以及可选的步长)来工作,返回一个新的序列,其中包含原序列中指定范围内的元素。切片的基本语法如下:

sequence[start:stop:step]
  • sequence 是要进行切片的序列。
  • start 是切片开始的索引(包含)。如果省略,默认为序列的开头。
  • stop 是切片结束的索引(不包含)。如果省略,默认为序列的末尾。
  • step 是切片时跳过的元素数量(即步长)。如果省略,默认为1。

示例代码:

假设有一个列表 my_list:

my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

基本的切片操作:

  • 获取前三个元素:my_list[:3] 结果为 [0, 1, 2]
  • 获取从第四个元素到最后一个元素:my_list[3:] 结果为 [3, 4, 5, 6, 7, 8, 9]
  • 获取第三个元素到第六个元素(不包括第六个):my_list[2:6] 结果为 [2, 3, 4, 5]

6.2、连接与复制

与字符串一样,列表之间可以使用+号和*号实现连接和复制,例如:

x = [1, 2]
y = [3, 4]print(x + y)   # 输出结果:[1, 2, 3, 4]
print(x * 2)   # 输出结果:[1, 2, 1, 2]

6.3、成员操作符

检测一个元素是否存在于列表中,可以使用in关键字,它实际上是一个成员操作符。这个操作符会检查序列(如列表、元组、字符串等)中是否包含指定的元素,如果包含则返回True,否则返回False。例如:

# 定义一个列表  
my_list = [1, 2, 3, 4, 5]  # 使用in操作符检测元素3是否在列表中  
if 3 in my_list:  print("元素3在列表中")  
else:  print("元素3不在列表中")  # 使用in操作符检测元素6是否在列表中  
if 6 in my_list:  print("元素6在列表中")  
else:  print("元素6不在列表中")

http://www.mrgr.cn/news/30554.html

相关文章:

  • Collections.synchronizedList()你真的会用吗?
  • 半导体制造技术导论(第二版)萧宏 第二章集成电路工艺介绍答案
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.18——内存函数
  • LabVIEW大数据处理
  • android bootchart安装使用指南
  • SpringCloud篇(服务提供者/消费者)(持续更新迭代)
  • vulnhub靶机:Breach 2.1详细过程
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第四集:制作更多的敌人
  • keep-alive的应用场景
  • C8T6--SPI读FLASH和双通信
  • 目前人工智能时代,程序员如何保持核心竞争力?
  • 项目小总结
  • Web开发:ABP框架2——入门级别的增删改查Demo
  • C++ Primer Plus(速记版)-类和数据抽象
  • LeetCode 876
  • Mysql中DML和DQL
  • 代码随想录八股训练营第四十天| C++
  • Activiti7《第二式:破剑式》——工作流中的以柔克刚
  • 注册商标为什么要一定找代理机构?
  • 【C++ Primer Plus习题】16.9
  • C++日期类,详细!!!
  • HTML基础和常用标签
  • pg入门2—pg中的database和schema有什么区别
  • 【资料分析】刷题日记2
  • 图书管理系统(面向对象的编程练习)
  • 【STL】priority_queue 基础,应用与操作