【Python】(4) 列表和元组

一、列表

1、创建列表

  • 创建空列表(2种):
python 复制代码
a = []
b = list()
  • 创建同时初始化(类型可以不同):
python 复制代码
a = [1, 'hello', 1.1]

2、下标访问

  • 下表从 0 开始
  • 负数 下标表示倒着
  • 计算列表长度用len()
  • 越界会报错。
python 复制代码
代码:
a = [1, 'hello', 1.1]
print(a[1], a[-1], len(a))

结果:
hello 1.1 3

3、遍历列表

  • 类似 Java 中 for-each 的方式:
python 复制代码
a = [1, 'hello', 1.1]
for i in a:
    print(i)
  • for/while 循环:遍历列表长度,根据下标访问每个元素。

4、查找列表

  • 查列表中是否存在元素:in、not in
  • 根据元素值查下标:index()
python 复制代码
代码:
a = [1, 'hello', 1.1]
print(1 in a)
print(a.index('hello'))

结果:
True
1

5、增加元素

  • 末尾添加:append()
  • 指定下标添加:insert()
python 复制代码
代码:
a = [1, 'hello', 1.1]

a.append('world')
print(a)

a.insert(1, 2)
print(a)

结果:
[1, 'hello', 1.1, 'world']
[1, 2, 'hello', 1.1, 'world']

6、删除元素

  • 删除末尾元素:pop()
  • 删除指定下标元素:pop(下标)
  • 删除指定元素:remove(元素)
python 复制代码
代码:
a = [1, 'hello', 1.1, 'world']

a.pop()
print(a)

a.pop(1)
print(a)

a.remove(1.1)
print(a)

结果:
[1, 'hello', 1.1]
[1, 1.1]
[1]

7、列表切片

  • :

python 复制代码
代码:
a = [1, 'hello', 1.1, 'world']

# 下标[1, 3)
print(a[1:3])

# 无左边界[第一个数,倒数第一个数)、无右边界、无左右边界
print(a[:-1])
print(a[2:])
print(a[:])

# 可添加步长
print(a[::2])

结果:
['hello', 1.1]
[1, 'hello', 1.1]
[1.1, 'world']
[1, 'hello', 1.1, 'world']
[1, 1.1]

8、列表拼接

  • a、b 拼接出新的列表:a+b
python 复制代码
代码:
a = [1, 'hello', 1.1]
b = [1, 2]
print(a+b)
# a、b 都不会变
print(a)
print(b)

结果:
[1, 'hello', 1.1, 1, 2]
[1, 'hello', 1.1]
[1, 2]
  • 在 a 的后面追加 b 列表:a.extend(b)
python 复制代码
代码:
a = [1, 'hello', 1.1]
b = [1, 2]
a.extend(b)
# a 会变
print(a)
print(b)

结果:
[1, 'hello', 1.1, 1, 2]
[1, 2]

二、元组

  • 元组跟列表的区别:元组不能改变
  • 相对列表的优势:① 把一个序列交给一个函数处理,又不想这个函数修改序列,用元组类型包装更安全。② 后续学习的字典,每个元素是键值对,键要求是可 hash 的,那么就不能改变。因此元组对象可作为键,而列表对象不可以。
  • 因此,元组拥有列表的读操作:下标访问、遍历、查找(in、not in、index())、切片([:])、拼接+创建新的元组。
  • 元组没有列表的写操作:下标访问修改、增添(append()、insert())、删除(pop()、remove())、追加拼接(extend())。
  • 创建元组:3种形式
python 复制代码
a = ()
b = tuple()
c = (1, 1.1, 'hello')
  • python 中很多时候的默认类型是元组,如函数有多个返回值:
python 复制代码
代码:
def fun():
    return 1, 2


print(type(fun()))

结果:
<class 'tuple'>
相关推荐
難釋懷4 小时前
Lua脚本解决多条命令原子性问题
开发语言·lua
墨理学AI4 小时前
一文学会一点python数据分析-小白原地进阶(mysql 安装 - mysql - python 数据分析 - 学习阶段梳理)
python·mysql·数据分析
CoderCodingNo4 小时前
【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球
开发语言·c++·算法
数研小生4 小时前
亚马逊商品列表API详解
前端·数据库·python·pandas
独好紫罗兰4 小时前
对python的再认识-基于数据结构进行-a005-元组-CRUD
开发语言·数据结构·python
chilavert3184 小时前
技术演进中的开发沉思-356:重排序(中)
java·开发语言
jianghua0014 小时前
Python中的简单爬虫
爬虫·python·信息可视化
devmoon4 小时前
为 Pallet 搭建最小化 Mock Runtime 并编写单元测试环境
开发语言·单元测试·区块链·智能合约·polkadot
喵手4 小时前
Python爬虫实战:针对Python官网,精准提取出每一个历史版本的版本号、发布日期以及对应的文档/详情页链接等信息,并最终清洗为标准化的CSV文件!
爬虫·python·爬虫实战·零基础python爬虫教学·python官方数据采集·采集历史版本版本号等信息·导出csv文件