python基础005----字典&集合

一、字典

1、概述

       字典是一个无序的、可修改的,元素呈键值对的形式(这种结构类型通常也称为映射,或者叫关系数组,也有叫哈希表的),以逗号分割的,以大括号包围的数据类型。字典中的每个元素由2部分组成,键:值键必须是唯一的,但值不必,值可以取任何数据类型,但键必须是不可变的,所以可以用数字,字符串或元组充当,而用列表就不行。

       字典和列表一样,也能够存储多个数据,字典中的值没有特殊的顺序。列表中找某个元素时,是根据下标进行的,如果下标很多,查找不方便。当索引不好用时,可以使用字典。由于字典是无序的,所以我们在定义字典和字典生成之后的元素的顺序是不同的。 

2、定义

     创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示: 

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict1 = { 'abc': 123, 98.6: 37 }
print('利用get方法访问字典中的值:',dict.get('Age'))   #利用get方法访问字典中的值
print('利用键名访问字典中的值:',dict['Age'])    #利用键名访问字典中的值,把相应的键放入到方括号中
print('如果用字典里没有的键访问数据,报错:',dict['Ages'])   #如果如果用字典里没有的键访问数据,会输出错误

输出结果:

     

注:get方法如果没有找到相应的值,就会输出None,后面也可以带默认的值,工作中常用。

3、列表内建函数

(1)添加和修改

        

代码实例:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict1 = { 'abc': 123, 98.6: 37, 'sse': 7}
#添加、修改
dict.update(dict1)    #update把dict1的键值对更新到dict
print('update把dict1的键值对更新到dict:',dict)
dict.update({'Age':'add'})  #如果键存在,覆盖之前的值;
print('键存在输出覆盖后后的字典:',dict)
dict.update({'Age':'add'})  #如果键不存在,在字典中添加键值对。
print('键不存在添加键值对后的字典:',dict)
dict['like']='sing'       #添加
print('输出添加后的字典:',dict)
dict['like']='dance'       #修改
print('输出修改后的字典:',dict)

 输出结果:

     

(2)删除

        

代码实例:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict1 = { 'abc': 123, 98.6: 37, 'sse': 7}
#删除
print('pop删除字典给定键 key 所对应的值:',dict1.pop(98.6))
print('popitem返回并删除字典中的最后一对键和值:',dict1.popitem())
del dict['Age']   # 删除键 'Name'
print('输出del 删除键后的字典:',dict)
dict.clear()       # 清空字典
print('输出clear清空后的字典:',dict)
del dict           # 删除字典
print('输出del 删除后的字典:',dict['Age'])

输出结果:

      

 (3)查找

         

 代码实例:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict1 = { 'abc': 123, 98.6: 37 }
#字典的取值
print('返回所有key的列表:',dict.keys())
print('返回所有value的列表:',dict.values())
print('get方法访问字典中的值:',dict.get('Age'))                        #利用get方法访问字典中的值,以键取值
print('get方法如果指定键不存在,默认返回None:',dict.get('Ages'))         #get方法如果指定键不存在,默认返回None
print('get方法指定键不存在时,可以指定返回内容:',dict.get('Ages','dd'))   #get方法指定键不存在时,可以指定返回内容
print('setdefault方法访问字典中的值:',dict.setdefault('Age'))          #利用setdefault方法访问字典中的值
dict.setdefault('Ages')           #setdefault方法如果键不存在,在字典中添加键并将值默认设为None
print('setdefault方法键不存在,在字典中添加键,值默认为none:',dict)
dict.setdefault('Agess',7)        #setdefault方法如果键不存在,可以设置自定义值
print('setdefault方法键不存在,可以自定义值:',dict)
print('items以列表返回可遍历的(键, 值) 元组数组:',dict.items())       #以列表返回可遍历的(键, 值) 元组数组
print('统计字典中的键值对个数:',len(dict))
print('输出字典,以可打印的字符串表示:',str(dict))

输出结果:

 (4)总结

        

二、集合

1、概述

       集合(set)是一个无序的、不重复的元素序列。与之前的列表、元组类似,可以存储多个数据,但是这些数据是不重复的。

2、定义

      创建一个列表,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。如下所示: 

s1 = {'apple', 'orange', 'pink', 'pear',  'banana'}
s2 = {1,2,3,4,5,6,4,3,3}
s3=set()        #创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
print('输出空的集合的类型',type(s3))
print('集合元素不重复,存在重复元素时不输出',s2)   #去重功能,集合中没有重复的元素

输出结果:

     

3、集合间的运算

      

代码实例:

s1 = {'apple', 'orange', 'pink', 'pear',  'banana'}
#集合间的运算
s4={'pear', 'banana', 'yellow', 'green', 'red'}
print('输出交集',s1&s4)       #两个集合的公共部分
print('输出并集',s1|s4)       #两个集合合并,没有重复元素
print('输出差集',s1-s4)       #只存在s1中不存在s4中的元素
print('输出对称差集',s1^s4)    #只有在s1或s4中,但是不会同时出现在二者中

输出结果:

    

 4、集合的操作

(1)添加

        

 代码实例:

s1 = {'apple', 'orange', 'pink', 'pear',  'banana'}
s4={'pear', 'banana', 'yellow', 'green', 'red'}
#添加
s1.add('potato')          #将将元素添加到集合中,如果元素已存在,则不进行任何操作
print('输出add添加后的结果',s1)
s1.update({'yellow', 'green'})  #参数可以是列表,元组,字典等
print('输出update添加后的结果',s1)

 输出结果:

    

 (2)删除

     

 代码实例:

s1 = {'apple', 'orange', 'pink', 'pear',  'banana'}
s4={'pear', 'banana', 'yellow', 'green', 'red'}
#删除
s1.remove('banana')    #将元素从集合中移除,如果元素不存在,则会发生错误
print('remove移除元素后的集合',s1)
s1.discard('pear')     #移除集合中的元素,如果元素不存在,不会发生错误
print('discard移除元素后的集合',s1)
s1.pop()               #随机删除集合中的一个元素
print('pop移除元素后的集合',s1)

 输出结果:

      

、各种数据类型比较

  1、数据类型比较

   

 2、可变类型与不可变类型

      (1)可变类型:值可以改变------列表list、字典dict、集合set

      (2)不可变类型:值不可以改变------数值类型(int,bool,float)、字符串 str、元组tuple

 3集合set、列表list、元组tuple之间可以相互转化

#集合set、列表list、元组tuple之间可以相互转化
str='hello world'
print('字符串转列表输出:',list(str))
print('字符串转集合输出:',set(str))
print('字符串转元组输出:',tuple(str))

 输出结果

   

 4、通用方法整合

 (1)常见操作

      

      注:in在字典操作时,判断的是字典的键

 (2)python内置函数

         

原文地址:https://www.cnblogs.com/geqiandeqingmu/p/14606938.html