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

目录

1.列表(List)

2.字典(Dictionary)

3.元组(Tuple) 

4.集合(Set) 

5.差异性


1.列表(List)

列表的特点

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

列表的遍历:

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

 在这里插入图片描述

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

["张三",“经理”,“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,'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)

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.使用{}符号创建集合

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
读取方式索引索引只能遍历
值是否可以重复键不能重复,值可以可以不可以

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值