python中列表、字典、元组与集合的特点以及差异

1.列表(List)

列表的特点

1. 数据按顺序存储
2. 列表有正序、倒序两种索引
3. 列表可存储任意类型的数据,并且允许重复。

列表的遍历:

lst = [1,2,3]
for i in range(len(lst)):
	print(lst[i])

列表的增删改操作
在这里插入图片描述
列表的缺点:
在表达结构化数据时语义不明确(结构化数据是指有明确属性的数据)
例如:

["张三",“经理”,“2000-4-24”,39,21000]
像上述的结构无法解析2000-4-24到底是什么含义,21000也不明确
解决该缺陷的方法就是用字典存储结构化数据。

2.字典(Dictionary)

字典的特点

1.字典采用了键(key)值(value)对的方式存储数据
2.字典中键不能重复,但是值可以
3.字典无序存储,并且运行时是动态调整存储空间(hash哈希表/散列表转换得到存储地址,然后再将值存储在该地址的空间中)

字典的创建方式

1. dict1 = {‘name’:‘张三’,'age':29}
2. dict2 = dict(name=‘张三’,age=29)

字典的更新操作(字典的新增操作与更新的操作完全相同,秉承有则更新、无则新增的原则)

#只能更新一个值
dict2['name']='王四'
dict2['age']=40
#更新多个值
dict2.update(name='王四',age=40)

字典的遍历

1.
for key in dict2:
	value = dict2[key]
2.
for key,value in dict2.items():
	print(key,value)

字典的删除:

1.pop 删除指定的key和value
dict2.pop('name')
2.popitem 删除最后一个key
dict2.popitem()

字典的常用操作:

#字典常用操作
dict1 = {'name':'lzq','age':24,'birthdate':'1996-11-20'}

#1.设置默认
dict1.setdefault('job','Stu')
print(dict1)

#2.字典的视图,会随着字典的变化而变化
key = dict1.keys()
value = dict1.values()
item = dict1.items()
print(key)
print(value)
print(item)

dict1['school']='szu'
print(key)
print(value)
print(item)

#3.字典的格式化输出
#第一种写法
dict_str = "%(name)s,%(age)s,%(birthdate)s"% dict1
print(dict_str)

#第二种写法(一般用这种比较多和规范)
dict_str2 = "{name},{age},{birthdate}".format_map(dict1)
print(dict_str2)

字典的存储原理:

键(key)--》得到hash()值--》存储地址(哈希值)--值(value)
name 张三      248392           248392       张三

3.元组(Tuple)

元组的特点:

1.使用小括号
2.在创建后不允许修改
3.使用索引读取元组中的值

元组的读取操作(与列表一致,使用索引)
元组无法进行写操作,因此不支持append、extend、insert等操作

tup = (a,b,c,1,2,3)
tup[1:3]
tup[-1]

#元组运算符
t = (1,2,3)+(4,5,6)   #创建了新的元组t 它的值是(1,2,3,4,5,6)
t = ("see,")*5 #创建了新的元组t,它的值为("see","see","see","see","see")
#注意,括号中加了逗号才会被认为是元组

4.集合(Set)

集合的特点

1.可以把集合看作是没有Value的字典,也就是集合的值不可变且不可重复
2.集合是分散存储,跟字典一样hash分布地址
3.允许数学运算

集合的创建

1.使用{}符号创建集合
2.使用set()函数创建

对集合求交集、并集、差集

set1 = {'a','b','c'}
set2 = {'a'}
#求set1和set2的交集
set1.intersection(set2)
#求set1和set2的并集
set1.union(set2)
#求set1中有但是set2无的差集
set1.difference(set2)

5.差异性

特点列表字典元组集合
符号中括号[]大括号{}小括号()大括号{}
数据存储连续、静态不连续、动态连续、静态不连续、动态
元素是否有序
数值是否可改变TrueTrueFalseFalse
读取方式索引索引只能遍历
值是否可以重复键不能重复,值可以可以不可以
应用场景非结构化数据存储结构化数据存储稳定不变的数据存储???
  • 31
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值