python之列表-元组-字典-文件读写

本文介绍了Python中的数据结构包括列表、元组、字典的基本操作,并通过实例展示了如何使用pickle模块进行文件的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、列表

1.1、列表举例:

c = [1,2,3,4,5,6,7]
d = [” 张三”, ” 李四”, ” 王五” ]
e = [1,2,3,” 4” ,” 5” ,d]

1.2、使用索引找到列表中的元素
1.3、不含步长的切片
用列表名[起 : 止]表示切片,从列表中切出相应的元素 前闭后开

c[0:2] 切出 [1,2]
c[ : ] 切出 [1,2,3,4,5,6,7]

1.4、包含步长的切片
用列表名[起 : 止: 步长] 带步长的切片,步长有方向。

对于c = [1,2,3,4,5,6,7]
切出 [5,4,3,2]用 c[4 : 0 : -1] 
切出[5,4,3,2,1]用 c[4 :: -1]
切出 [6,4,2]用 c[-2 :: -2] 从倒数第二个开始一直切到头,步长-2

1.5、修改:
列表名 [ 索引号 ] = 新值
1.6、删除:
del 列表名[ 索引号 ]
1.7、插入:
列表名.insert(插入位置索引号,新元素)

2、元组

2.1、使用()定义
一旦定义不能改变,不能按照索引赋值,删除,或者插入。可以按照索引查找。

a=(1,2,3)
3、字典

3.1、
字典 { }
3.2、
字典里放着 {键:值, 键:值, 键:值} n 个键值对
dic={1:”123”,”name”:”zhangsan”,”height” :180}
3.3、查找:
用字典名[ 键 ] 索引字典中的值
dic[”name” ] 表示字典 dic 中键”name” 对应的值”zhangsan”
3.4、修改:
字典名 [ 键 ] = 新值
3.5、删除:
del 字典名[ 键 ],只需要删除键,对应的数值就会被删除
3.6、插入
字典名[ 新键 ] = 新值

5、文件读写
import pickle

game_data = {
    "cheng": "great",
    "yi": "yi",
    "ming": "ming",

}
file_name = open("data.dat", "wb")
try:
    pickle.dump(game_data, file_name)
except:
    print("ERROR!")
file_name.close()

file_name=open("data.dat",'rb')
game_data=pickle.load(file_name)
print(game_data)

输出:

{'cheng': 'great', 'yi': 'yi', 'ming': 'ming'}

@欢迎批评指正。

### Python列表元组字典的数据类型及其区别 #### 1. 列表(List) 列表是一种有序的、可变的数据结构,能够存储任意类型的元素。可以通过索引来访问其内部的元素,并支持动态增加或删除元素。 - **特点** - 可变:可以随时修改其中的内容。 - 有序:保持插入时的顺序不变。 - 支持重复值:允许存在相同的元素多次出现。 - **基本操作** - 定义与初始化 ```python my_list = [1, 'apple', True] ``` - 增加元素 ```python my_list.append('banana') # 尾部追加单个元素 my_list.extend([3, 4]) # 合并另一个列表至当前列表尾端 ``` - 删除元素 ```python del my_list[0] # 根据索引位置移除指定项 my_list.remove('apple') # 移除首次匹配到的具体值 ``` - **引用说明** 由于列表具备灵活性高这一优势[^1],因此非常适合用来处理那些需要频繁变更内容的任务场景。 --- #### 2. 元组(Tuple) 元组也是一种序列化的容器类型,类似于列表,但它一旦创建便不能再更改任何部分;即它是不可变得。 - **特点** - 不可变:一经设定就不能再做任何形式上的调整。 - 轻量级:相较于列表而言占用更少内存资源。 - 序列化保存多个固定项目的好工具。 - **基本操作** - 构造实例 ```python my_tuple = ('red', 'green', 'blue') single_item_tuple = (42,) # 单元素情况记得加上逗号哦! ``` - 获取成员 ```python color = my_tuple[1] # 提取第二个颜色名'green' colors_slice = my_tuple[:2] # 截取前两色组成的子集('red','green') ``` 关于为何选用元组而不是列表作为某些场合下的首选方案,在于前者能提供更高的安全性保障以及性能优化潜力方面有所体现[^1]. --- #### 3. 字典(Dictionary) 字典是由键(Key)-值(Value)对构成的一种映射关系型数据结构。每一个键都对应唯一的一个值,通过键来检索相应的值非常高效快捷。 - **特征描述** - 键必须独一无二而且不可改变(比如字符串或者数值). - 存储无特定次序排列. - 查找速度快. - **常规动作展示** - 新建字典对象 ```python person_info = {'name': 'John Doe', 'age': 30} empty_dict = {} another_way_to_create = dict(key='value') ``` - 更新/读写条目 ```python person_info['address'] = 'Somewhere St.' # 添加新的key-value pair age_of_person = person_info.get('age', None) # 如果不存在则返回默认参数None ``` 另外值得注意的一点就是尽管字典本身没有固定的迭代路径,但从Python3.7开始实现上已经保证了按照录入先后顺序遍历的行为模式[^4]. --- ### 综述对比表格 | 属性 | 列表(List) | 元组(Tuple) | 字典(Dict) | |--------------|---------------------|-----------------------|------------------------| | 是否可变 | 是 | 否 | 是 | | 索引支持 | 数字 | 数字 | 自定义关键字 | | 插入效率 | 较低 | 高 | N/A | | 查询速度 | O(n) | O(1)(基于hash寻址) | 平均O(1),最坏情况下O(n)|
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱码仕1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值