列表,元组,字典的区别

Python语言包含6种内建的序列,其中,有两种主要的类型:列表和元组。列表是可以修改的,而元组不可以,如果要添加或者删除某些元素,就只能用列表,为了限制某些元素,就会用到元组。一般来说,列表可以替代元组。在列表之中,有索引,分片,加,乘等等。


list(列表) 用方括号
列表是Python的一种内置数据类型,list是一种有序的集合,可以随时添加和删除其中的元素。
获取list中的元素用角标获取,角标可以使用正角标,也可以使用负角标,越界时抛出IndexErro
list中的元素的数据类型也可以不一样(就像Java一样),也可以在list内放另外一个list,这样也就形成了一个多维集合
list的方法
len(list) #获取lest长度
append() #末尾追加元素
pop() #弹出末尾元素
例如:
>>>zoo = ['pig','tiger','dog']
>>>zoo
['pig','tiger','dog']
>>>zoo[0]
'pig'
>>>zoo[-1]
'dog'

tuple(元组) 用小括号
元祖也是一种有序列表,和list非常类似,不同点是tuple一旦定义了就不可修改,在一定意义上这也提高了代码的安全性,查询方法和list一样,使用的时候能用tuple的就用tuple。
在定义只有一个元素的元祖时加入"逗号"以免产生和数学运算的歧义

可变的tuple
当元祖内部放一个列表的时候,这个元祖中的列表的值就可以变化了,实际上tuple并没有改变,变的是内部list的值>>> country = ('bj',['sh','gd'])
>>> country[1]
['sh', 'gd']
>>> country[1][0] = 'yn'
>>> country
('bj', ['yn', 'gd'])
>>> 

Dictionary (字典) : 用{}来定义
Dict={'name':'Pei', 'age':'26'}
### Python 中列表元组字典和集合的用法及区别 #### 1. 列表 (List) 列表是 Python 中最常用的数据结构之一,它是一个有序、可变的序列,能够存储任意类型的元素。列表通过方括号 `[]` 表示,其中的元素由逗号分隔。 以下是列表的一些基本操作: - **创建列表**: ```python my_list = [1, 2, 3, "Python", True] ``` - **访问元素**: 可以通过索引来访问列表中的元素,索引从 0 开始。 ```python first_element = my_list[0] # 获取第一个元素 last_element = my_list[-1] # 获取最后一个元素 ``` - **修改元素**: 列表是可变的,因此可以直接更改其内部元素。 ```python my_list[0] = 10 # 修改第一个元素为 10 ``` - **添加/删除元素**: 支持多种方法向列表中添加或移除元素。 ```python my_list.append(4) # 添加单个元素到末尾 my_list.extend([5, 6]) # 扩展多个元素到末尾 my_list.remove("Python") # 移除指定值的第一个匹配项 del my_list[0] # 删除指定位置的元素 ``` 由于列表是可变的,适合用来处理动态数据[^1]。 --- #### 2. 元组 (Tuple) 元组类似于列表,但它是一个不可变的数据结构。一旦定义了一个元组,就不能对其内容进行增删改操作。元组通常用于保存一组固定不变的数据。 - **创建元组**: ```python my_tuple = (1, 2, 3, "Python", False) single_item_tuple = ("only", ) # 单元素元组需加逗号 ``` - **访问元素**: 和列表一样,可以通过索引访问元组中的元素。 ```python second_element = my_tuple[1] # 访问第二个元素 ``` - **特性**: 元组因其不可变性,在某些场景下更高效且安全,比如作为字典的键或者集合的成员时[^1]。 --- #### 3. 字典 (Dictionary) 字典是一种无序的、可变的数据结构,基于键值对的形式存储数据。每个键都对应一个唯一的值,键必须是不可变类型(如字符串、数字或元组),而值可以是任何数据类型。 - **创建字典**: ```python my_dict = {"name": "Alice", "age": 25, "is_student": False} another_dict = dict(key1="value1", key2=42) ``` - **访问值**: 使用键来获取对应的值。 ```python name_value = my_dict["name"] # 返回 "Alice" age_value = my_dict.get("age") # 推荐方式,不存在返回 None 或默认值 ``` - **更新/新增键值对**: ```python my_dict["new_key"] = "New Value" # 新增键值对 my_dict.update({"address": "Earth"}) # 更新或批量增加键值对 ``` - **删除键值对**: ```python removed_value = my_dict.pop("name") # 删除并返回被删除的值 del my_dict["age"] # 删除指定键及其值 ``` 字典非常适合于快速查找以及关联映射关系的操作[^3]。 --- #### 4. 集合 (Set) 集合是一种无序的、不重复的数据结构,主要用于存储不同的唯一元素。它可以执行高效的数学集合运算,例如交集、并集和差集等。 - **创建集合**: ```python my_set = {1, 2, 3, 4} # 花括号 {} 定义 empty_set = set() # 创建空集合需要用 set() from_list_set = set([1, 2, 3]) # 从其他容器转换而来 ``` - **添加/删除元素**: ```python my_set.add(5) # 增加单一元素 my_set.update({6, 7}) # 同时增加多个元素 my_set.discard(3) # 如果存在则删除该元素,否则不做任何事 my_set.remove(2) # 删除指定元素,若不存在会抛出异常 ``` - **集合运算**: ```python a = {1, 2, 3} b = {3, 4, 5} union_result = a.union(b) # 并集 {1, 2, 3, 4, 5} intersection_result = a.intersection(b) # 交集 {3} difference_result = a.difference(b) # 差集 {1, 2} symmetric_difference_result = a.symmetric_difference(b) # 对称差集 {1, 2, 4, 5} ``` 集合特别适用于去重和集合逻辑计算的任务[^2]。 --- #### 总结对比 | 数据结构 | 是否有序 | 是否可变 | 键值形式 | 主要用途 | |----------|----------|----------|-----------|----------| | 列表 | 是 | 是 | N/A | 动态数组,频繁增删查改 | | 元组 | 是 | 否 | N/A | 不变量,提高性能与安全性 | | 字典 | 否 | 是 | 键-值 | 映射关系,快速查找 | | 集合 | 否 | 是 | N/A | 存储唯一值,集合运算 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值