python基础--数据类型--(列表、元组、字典、集合)

 

 

性质

操作列表元组字典集合
有序偏量索引/切片

键索引 
可变增/删/改

 

异构/嵌套不同对象集合

不重复唯一  

可迭代遍历

 

目录

列表 list

元组 tuple

字典 dict

集合

 

可变:改变数据本身,内存地址不变。

不可变:改变数据内存地址会变。int/float/str/tuple

 


列表list

列表有序,可变,支持增删改查。
列表之间可以+拼接
列表可以转换成元祖,集合;若列表中只有2个值,也能转成字典。

a=[1,2,3,4,5,6]
b=(123,'456')
c={123: 456,'爸爸的爸爸':'爷爷'}
d={15,45}
e=[34,'hh']
f=[57,86]


#a+e        #两个列表拼接
#len(a)      #求列表长度
#a*5        #列表重复5次
#10 in a    #>>>False,10不在列表中,所以是假。判断列表中是否存在某元素


#tuple(a)
#set(a)
#dict([b,d,e]) #b,d,e转成字典的键值对,两个元素的列表,元祖,集合可以直接转换成字典。

#a.append(False)   #末位增加一个元素,元素任意,可以是数字,字符串,布尔值,列表,元祖,集合,

#a.extend(e) #末位拓展,需接一个可迭代对象,可以是:字符串,列表,元祖,集合,字典(键依次并入列表,值舍弃),对象中的元素被遍历进入列表,不保留原有的列表,元祖,集合等格式
#a.extend(b)     #元祖
#a.extend(c)     #字典
# a.extend(d)    #集合
#a.extend(e+f)   #两个列表相加,并入列表
#a.extend('abcde')  #可迭代对象(iterable),可以被遍历的对象,list,str,tuple,dict,set

#a.insert(1,True)   #插入(位置,一个元素),元素任意
#aa=a.copy()  #复制列表

#a.count(4) #某个元素计出现次数

#a.index(4)  #第一个4的位置 ,仅查询,不可赋值
#a[1]       #位置查找值,也可用于赋值

#a.clear()   #清空列表
#a.pop()    #末位删除 a.pop(4) 删除位置为4的元素
#a.remove(1)  #删除列表中某个特定元素
#a.remove(a[1]) 
#del a      #删除整个列表


#a.reverse()  #倒序
#a.sort(reverse=True) #排序,默认从小到大,reverse=True从大到小
a

元组 tuple

与列表类似,但是其中元素不支持修改
可以通过位置查询元素,通过元素查位置,某个元素计数
元组可以转化成列表或集合
两个元组可以加号拼接

a=(1,3,4,5,5)
b=[123,456]

#c=(1)   #创建一个元素的元组,必须加个逗号,不然会被当成运算符里的括号,无法创建元组
#c=()     #创建空元祖

# a.count(5)  #计数5出现了几次
# a.index(4)  #定位元素4的位置
# a[2]        #通过位置索引数据
#a[:2]         #可像列表一样切片
#a[2]=1   #元祖不支持修改,所以这个代码是跑不动的。元组不支持增删改,要么整个元祖删掉。。
#del a         #把整个元组删掉         


#len(a)       #求元组长度
# a+a         #两个元组组合
# a+b         #元组不能和其他类型的数据等相加
#a*4          #重复
#3 in a      #判断元祖中是否存在某元素

# list(a)     #将元组转化为列表
# set(a)      #将元组转化为集合

#疑问,搞那么多数据类型干啥?

字典 dict

由键值对key-value组成,键不能重复,值可以。
字典中元素是无序的。
字典的元素支持增删改查

与列表相比,字典是无序的;查找、插入极快,不会随键值增加而减慢,但是需要占用内存较多,空间换时间。
列表是有序的;占用空间小,浪费内存小,但是元素增加,查找和插入都更耗时。

#a={}  创建空字典
a={1:'hah',2:'hehe','3':123,'name':'pig'}
b={4:665,5:'aaa',6:False}

# a['3']    #只能通过键查找值,因为是无序的,无法像列表一样用数字定位
# a[1]        ##a.fromkeys([1,2,3,4])   #以列表中的元素为键,构建一个值为none的字典
#a.fromkeys([1,2,3,4],123) #前面同上,所有键对应的值都是123这里的1是键,而不是数字位置。
#a.get('name') #用键查找值
#a.keys()      #表的形式返回所有键
#a.values()    #列表的形式返回所有值
#type(a.items()) #将键值对变成一个个小元祖,组成列表的形式返回。   这功能有啥用????

#a['age']=100       #增加键值对                   
#a['name']='悟能' #更新name的值
#a.setdefault(4,666)            #增加键值对,如键已存在则更新值
#a.update({4:665,5:'aaa',6:False})  #增加多个键值对  两个字典不能直接用+拼接,所以需要这种方式

#a.pop(1)              #删除2和其对应的值,括号中必须给出一个key,给两个也只删除第一个
#a.popitem()           #python3中,删除最后入的一个键值对 ;其他的版本貌似是随机弹出

# len(a)       #字典中有多少个键值对
# '3'in a     #字典中是否存在某个键,值不能直接判断


#list(a)   #这三个方法也可以得到字典所有的键
#set(a)     #返回键的集合
#tuple(a)   #返回键元组


集合

一组无序,不重复的元素的集合
支持增删查
主要用于去重,或者求交集,并集等

# a=set()    #创建空集 
a={1,2,3,4,5}
b={1,2,5,7,8,9,10}
c=[1,2,3,1,2,3,4,5]

#a&b    #求交集,与a.intersection(b)相同
# a|b     #求并集,即 a.union(b)
# a-b       #差集 ,即a.difference(b)
# a^b       #对称差集,即a.symmetric_difference(b)

#list(set(c))  #用于列表,元祖去重

# a.add('1')     #增加一个hashable(不可变?)的对象,比如数字,字符串,元组
# a.update({1:'hah',2:'hehe','3':123,'name':'pig'},[123,456],{123,456},(444,555,34,789)) 
# a.update('are you ok?')
# 接一个或多个可迭代对象,对象中的元素被遍历去重进入集合中
# 与列表的extend函数相比,这个可以接多个对象,extend只能一个

#a.remove(3)  # 删除一个特定值
#a.discard(4) #删除一个特定值
# a.pop()   #随机移除一个值,观察貌似是弹出的集合中第一个值
#del a        #删除整个集合

len(a)
3 in a 

[数据类型和深浅拷贝](https://www.cnblogs.com/WQ577098649/p/11529244.html)

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值