美文网首页
07-Python笔记整理(字典元组集合)

07-Python笔记整理(字典元组集合)

作者: 李小萌mmm | 来源:发表于2018-07-23 20:02 被阅读0次

字典

可变的(可以增删改),无序的(不能使用下标),有限的,键不重复的对象集合
存的数据是以键值对的形式出现的

除了列表以外,字典也许是Python之中最灵活的内置数据结构类型,

如果把列表看做是有序的对象集合,那么就可以把字典当成是无序的集合。

它们主要的差别在于:字典当中的元素是通过键来存取的,
而不是通过偏移存取。对字典进行索引是非常快速的搜索操作,
Python采用最优化的散列算法来寻找键,因此使用键查找的速度非常快。

键值对:(key:value):

key是形式,value才是真正要存的内容

key理论上可以是任何不可变的数据类型,但是一般使用字符串

value可以是任何数据类型

1.创建一个字典

dict1 = {'1':1,'abc':2}

2.将其他类型转换成字典

dict3 =dict(([1,2],[2,3]))

dict4 =dict([(1,2),(2,3)])

3.查找字典元素(两种方法)

person ={'name':'路飞','age':17,'face':90}

第一种.如果key值不存在,会报KeyError

print(person['name'])

第二种.如果key值不存在,会返回None

print(person.get('name'))
print(person.get('aaa'))
注意:如果key值确定存在,使用[]的语法,不确定得话使用get()方法

4.增加、修改 字典元素

通过key获得字典元素,然后赋值,当key存在的时候,就是修改值
不存在的时候增加值
person = {'height':1.8}

person['height'] = 1.7

person['age'] = 28

5.删除字典

1.del dict[key]删除的键必须存在不然会报错Keyerror

del person['age']

(2).dict.pop(key)

person.pop('height')

6.相关的数组属性

dict.keys():获得字典所有的key,返回的是dict_keys,但是可以把它当成列表使用
dict.values():获得字典所有的值
dict.items():将字典所有的键值对转换成一个一个元组,key作为第一个元素,value作为第二个元素

student_dict = {'name':'小梦' , 'student_id':'py1805','scores':{'english':100, 'chinses':60}}
print(student_dict.keys())

dict_keys(['name', 'student_id', 'scores'])

7.遍历字典

for key in student_dict:
print(key,student_dict[key])

for key in student_dict.keys():
print(key,student_dict[key])

不推荐使用 ,对CPU消耗较大

for k,v in student_dict.items():
print(k,v)
for v in student_dict.values():
print(v)

8.列表中有字典,字典中有字典,字典中有列表

student_data =[{'student1':'小明','sex1':'male','age1':'18','phone1':12345678},
               {'student2':'小红','sex2':'female','age2':'19','phone2':1234576789},

]

student_data1 ={'student1':{'name':'小李','age':18},
                'student2':{'name':'小梦','age':20}
                }

9.dict.fromkeys(序列,value)序列中的元素作为key,value作为值

new_dict =dict.fromkeys(['abc','123','lll'],100)
print(new_dict)

{'abc': 100, '123': 100, 'lll': 100}

10.in

obj in 字典,判断字典中是否有存在的key

11.update

dict1.update(dict2):使用字典2的键值对更新字典1的键值对
如果字典2中对应的键值对在字典1中不存在就添加,存在就更新

dict1 = {1:'a','2':'b'}
dict2 = {1:'b','3':'ccc'}
dict1.update(dict2)
print(dict1)

{1: 'b', '2': 'b', '3': 'ccc'}

和list比较,dict有以下几个特点:

查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。


元组

元组是不可变的列表,列表中除了可变的操作外,其他操作都适用于元组
元组值:使用小括号()
增删改不能用于元组

方法

len

in ,not in

+ , *


集合

集合也是一种容器类型的数据类型(序列):数据放在{ }中,多个之间用逗号隔开列如:{1,2,'a'}
集合是无序的,可变的,元素不能重复
集合可以进行数学中集合相关的操作:判断是否包含交集,并集,差集,补集

1.怎么创建一个集合

set1 ={1,2,3,3,21}
print(set1,type(set1))

{1, 2, 3, 21} <class 'set'>

2.将其他数据转换成集合,自带一个去重的功能

set2 = set('abc1233312')
print(set2)

{'c', '1', 'b', '3', 'a', '2'}

3.增删改查

查:通过遍历
注意集合没有办法单独获得某一个元素

set1 ={1,2,3,3,21}
for item in set1:
    print(item)
1
2
3
21

1.

set1.add():在指定集合中添加指定的元素
set1.add(100)

2.

set1.update(set2):将集合2的元素添加到集合1中,自动去重

set1 ={1,2,3,3,21}
set1.update({'abc','123'})
{'123', 1, 2, 3, 21, 'abc'}
print(set1)

1.

remove
set1.remove(元素):在指定的集合中删除指定的元素

2.

pop
set1.pop():随机删除一个

3.

set.clear():清空集合

4.判断是否包含

集合1 >= 集合2 --判断集合1中是否包含集合2
集合2 <= 集合1 -- 判断几何2中是否包含集合1

print({1,2,3,4} >={1,4})
print({1,2,3,4}<={1,4})

True
False

5.集合的数学运算

求并集: |
print({1,2,3} | {2,3,4,5})
求交集 &
print({1,2,3}&{2,3,4,5})
求差集 -
print({1,2,3}-{2,3,4,5})
求补集:^
print({1,2,3}^{2,3,4,5})

{1, 2, 3, 4, 5}
{2, 3}
{1}
{1, 4, 5}

容器(列表,元组,集合,字典)前面加可以将容器里面的元素全部取出*

相关文章

网友评论

      本文标题:07-Python笔记整理(字典元组集合)

      本文链接:https://www.haomeiwen.com/subject/mjojmftx.html