python基本数据类型字典am

在内存中存储的数据可以是不同的数据类型。python有6种基本数据类型,用于各种数据的存储,分别是:numbers(数字类型)、string(字符串)、List(列表)、Tuple(元组)、Dictionary(字典).

本文介绍字典和集合。

01

字典类型(Dict)

定义

字典是可变类型的容器数据类型,可以存储任意数据类型的对象。

{}内用逗号分隔开多个key:value,其中value可以是任意类型的值,key必须是不可变类型(字符串、数字、元组),一般是对value具有描述性质的字符串,键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

#创建字典的两种方式dic={x:x,y:y}#方式一dic=dict(x=x,y=y)#方式二

操作字典的方法

按照key存/取值

d={k1:}#针对赋值操作:key存在,则修改d[k1]=#针对赋值操作:key不存在,则创建新值d[k2]=print(d)#{k1:,k2:}

len()

字典的键值对个数,当有key重复的时候,只记一次。

d={k1:,k2:2,k1:,k1:}print(d)#{k1:,k2:2}print(len(d))#2

成员运算

判断key是否包含在字典中

d={k1:,k2:2}print(k1ind)#Trueprint(ind)#False

删除操作

del

通用删除,没有返回值

d={k1:,k2:2}deld[k1]print(d)#{k2:2}

pop()

根据key删除元素,会返回被删除的key对应的value

d={k1:,k2:2}res=d.pop(k2)print(d)#{k1:}print(res)#2

popitem()

popitem随机删除一组键值对,将被删除的键值对以元组的方式返回

d={k1:,k2:2}res=d.popitem()print(d)#{k1:}print(res)#(k2,2)

keys()values()items()

在Python2中得到的分别是字典的所有key的列表、所有value的列表、所有键值对元组的列表,缺点是如果数据量非常大会很占用内存空间。

d={k1:,k2:2}d.keys()[k2,k1]d.values()[2,]d.items()[(k2,2),(k1,)]

在python3中得到的是会下出每个值的老母鸡,不会占用内存空间。

d={name:python,age:12}d.keys()dict_keys([name,age])d.values()dict_values([python,12])d.items()dict_items([(name,python),(age,12)])

循环遍历

遍历字典中的key

forkind.keys():print(k)forkind:print(k)

遍历字典的value

forvalueind.values():print(value)

遍历字典中的键值对

forkey,valueind.items():print(key,value)

其他内置方法

clear()

清空字典

d={name:python,age:12}d.clear()print(d)#{}

update()

用其他字典更新当前字典,存在的键值对进行覆盖,不存在的进行添加

d={name:python,age:12}d.update({sex:,male,name:tony})print(d)#{name:tony,age:12,sex:,male}

get()

根据key取值,容错性高,弥补了使用[]取值时key不存在报错的问题

d={a:gg,k:21}#弥补当key不存在时会报错的问题,不会报错,会返回Noneprint(d[k3])#会报错d.get(k3)#会返回none,容错性好

02

集合(Set)

定义

在{}内用,分隔开多个元素

s={}#空的花括号默认定义的是空字典print(type(s))#classdicts=set()#通过这种方式得到的才是空集合

集合内的元素必须满足以下三个条件:

1.集合内的元素必须为不可变类型

s2={[1,2,3],1}print(s2)#会报错TypeError:unhashabletype:list#不可哈希是可变类型

2.集合内元素无序

s={1,2,a,(1,4)}#底层是调用了set()功能print(s)

3.集合内元素没有重复,可以进行去重操作

s={1,1,1,1,1,2,2}print(s)#{1,2}

类型转换

相当于底层调用for循环,取出每一个值放在集合中

#对字符串进行转换,会自动将字符串中重复的去掉s=set(hellollllop))#对列表进行转换s=set([1,2,3,4,5,6])#s=set([1,2,3,4,5,6,[1,2]])会报错#print(s)#对字典进行转换s=set({k1:12,k2:13}.items())s=set({k1:12,k2:13})s=set({k1:12,k2:13}.values())

操作集合的方法

关系运算

两个集合可以进行数学中的交集、并集等运算。

a={1,2,3}b={2,3,4}

交集

求两个集合共同的值,两种方法

res=ab#{2,3}res1=a.intersection(b)#{2,3}

并集

两个集合所有的值,重复的去掉,两种方式

res=a

b#{1,2,3,4}res1=a.union(b)#{1,2,3,4}

差集

比如,取a集合独有的值,a为被减,两种方式

res=a-b#{1}res1=a.difference(b)#{1}

对称差集

两个集合分别独有的值组成一个新的集合,两种方式

res=a^b#{1,4}res1.symmetric_difference(b)#{1,4}

父子集

判断一个集合是否是另一个集合的父集/子集,如果两个集合相等,互为父子集

s4={1,2,3}s5={1,2}res=s4.issubset(s5)#False判断s4是否是s5的子集res1=s4.issuperset(s5)#True判断s4是否是s5的父集

去重操作

集合的去重操作有局限性,只能对不可变类型的数据进行去重,并且无法保证原来的顺序。针对可变类型数据的去重操作,需要自己编写代码完成功能。

#去掉列表中重复的字典l=[{name:lili,age:18,sex:male},{name:jack,age:73,sex:male},{name:tom,age:20,sex:female},{name:lili,age:18,sex:male},{name:lili,age:18,sex:male},]new_l=[]forinfoinl:ifinfonotinnew_l:new_l.append(info)l=new_ll=new_l

len()

集合中元素的数量

a={1,2,3,4}print(len(a))#4

成员运算

判断某个元素是否包含在集合中,结果是True或者False

print(1ina)#Trueprint(5notina)#True

循环遍历

a={1,2,3,4}foriina:print(a)

其他内置方法

discard()remove()pop()

#discard()删除指定元素,元素不存在不会报错,donothinga={1,2,3,4}a.discard(5)print(a)#{1,2,3,4}a.discard(4)print(a)#{1,2,3}#remove()删除指定元素,元素不存在报错a.remove(4)#KeyError:4#pop()随机删除,返回被删除的元素res=a.pop()print(res)#1

update()

使用另一个集合对当前集合进行更新,自动进行去重

a={1,2,3,4}a.update({1,2,3,4,5})print(a)#{1,2,3,4,5}

add()

为集合增加新的值

a.add(8)

isdisjoint()

判断两个集合是否完全独立,没有相同的部分

print(a.isdisjoint({1,2,3}))#False

03

小庄卖瓜

如果想要了解更多python知识,欢迎

转载请注明:http://www.sonphie.com/jbzd/14397.html

  • 上一篇文章:
  • 下一篇文章:
  • 网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

    当前时间: