【python】列表、字典、元组与集合的特点以及对比

一、列表(List)

1. 列表的特点

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

2. 列表的遍历:

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

在这里插入图片描述

3. 列表的缺点:

在表达结构化数据时语义不明确(结构化数据是指有明确属性的数据)
例如:

["张三",“经理”,“2000-4-24”,3921000]
像上述的结构无法解析2000-4-24到底是什么含义,21000也不明确

解决该缺陷的方法就是用字典存储结构化数据。

二、字典(Dictionary)

1. 字典的特点

  1. 字典采用了键(key)值(value)对的方式存储数据

  2. 字典中键不能重复,但是值可以

  3. 字典无序存储,并且运行时是动态调整存储空间(hash哈希表/散列表转换得到存储地址,然后再将值存储在该地址的空间中)

2. 字典的创建方式

  1. dict1 = {‘name’:‘张三’,'age':29}

  2. dict2 = dict(name=‘张三’,age=29)

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

#只能更新一个值

dict2['name']='王四'
dict2['age']=40

#更新多个值

dict2.update(name='王四',age=40) 

4. 字典的遍历

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

5. 字典的删除:

1.pop 删除指定的key和value

dict2.pop('name')

2.popitem 删除最后一个key

dict2.popitem()

6. 字典的常用操作:

#字典常用操作

dict1 = {'name':'lzq','age':24,'birthday':'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,%(birthday)s"% dict1
print(dict_str)

#第二种写法(一般用这种比较多和规范)

dict_str2 = "{name},{age},{birthdate}".format_map(dict1)
print(dict_str2)

三、元组(Tuple)

1. 元组的特点:

  1. 使用小括号

  2. 在创建后不允许修改

  3. 使用索引读取元组中的值

2. 元组的读取操作(与列表一致,使用索引)

元组无法进行写操作,因此不支持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")

#注意,括号中加了逗号才会被认为是元组

四、集合(Set)

  1. 使用{}符号创建集合

  2. 使用set()函数创建

set1 = {'a','b','c'}
set2 = {'a'}

#求set1和set2的交集

set1.intersection(set2)

#求set1和set2的并集

set1.union(set2)

#求set1中有但是set2无的差集

set1.difference(set2)

五、对比

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

别出BUG求求了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值