字典的定义
Python内置的数据结构之一,与列表一样是一个可变序列 (可以增删改) 以键值对 的方式存储数据,字典是一个无序的序列 (第一个放进去的不一定在第一个位置,位置根据哈希函数计算得来,因此放在字典中的键必须是一个不可变序列,整数序列、字符串都是不可变序列)
字典的创建
scores = { '张三' : 100 , '李四' : 98 , '王五' : 45 }
print ( scores)
student = dict ( name= 'jack' , age= 20 )
print ( student)
d = { }
print ( d)
字典的常用操作
字典中值的获取
scores = { '张三' : 100 , '李四' : 98 , '王五' : 45 }
print ( scores. get( '赵六' ) )
print ( scores. get( '麻七' , '没有这个key' ) )
print ( scores. setdefault( '张三' ) )
print ( scores. setdefault( '赵六' ) )
print ( scores)
print ( scores. setdefault( '赵六' ,85 ) )
key的判断 字典元素的删除
scores = { '张三' : 100 , '李四' : 98 , '王五' : 45 }
del scores[ '张三' ]
print ( scores)
scores. clear( )
print ( scores)
scores. popitem( )
scores[ '张三' ] = 90
scores[ 'Jack' ] = 90
scores. update( { '王五' : 85 , '赵六' : 60 } )
print ( scores)
scores = { '张三' : 100 , '李四' : 98 , '王五' : 45 }
keys = scores. keys( )
print ( keys)
print ( type ( keys) )
print ( list ( keys) )
values = scores. values( )
print ( values)
print ( type ( values) )
print ( list ( values) )
items = scores. items( )
print ( items)
print ( type ( items) )
print ( list ( items) )
scores = { '张三' : 100 , '李四' : 98 , '王五' : 45 }
for key in scores:
print ( key)
for key in scores. keys( ) :
print ( key)
for value in scores. values( ) :
print ( value)
for item in scores. items( ) :
print ( item)
for key, value in scores. items( ) :
print ( key, value)
字典的特点
字典中的所有元素都是一个key-value对,key不允许重复 , value可以重复 字典中的元素是无序的 字典中的key必须是不可变对象 字典也可以根据需要动态地伸缩 字典会浪费较大的内存,是一种使用空间换时间的数据结构
字典生成式
内置函数zip():用于将可迭代的对象 作为参数,将对象中对应的元素 打包成一个元组 ,然后返回由这些元组组成的列表
d = { item: price for item, price in zip ( items, prices) }
print ( d)
集合的创建
集合每个值是唯一的,与列表、字典一样都属于可变类型的序列,并且也是无序的 ,是可迭代对象
s = { 1 , 1 , 1 , 2 , 4 , 6 , 3 , 2 , 2 }
print ( s)
print ( type ( s) )
s = set ( range ( 6 ) )
print ( s)
s = set ( )
集合的增删
s = { 1 , 4 , 8 , 9 }
s. add( 2 )
s. add( 10 )
s. add( 5 )
print ( s)
s. update( { 2 , 3 , 5 } )
print ( s)
s. update( [ 111 , 22 ] )
print ( s)
s. pop( )
print ( s)
s. remove( 8 )
print ( s)
s. discard( 100 )
print ( s)
s. clear( )
print ( s)
集合的运算
s1 = { 1 , 2 , 3 }
s2 = { 2 , 4 , 5 }
print ( s1. intersection( s2) )
print ( s1 & s2)
print ( s1. union( s2) )
print ( s1 | s2)
print ( s1. difference( s2) )
print ( s1 - s2)
print ( s2 - s1)
print ( s1. symmetric_difference( s2) )
print ( s1 ^ s2)
集合的判断
s1 = { 1 , 2 , 3 }
s2 = { 1 , 2 , 3 , 5 }
print ( s1. isdisjoint( s2) )
print ( s1. issubset( s2) )
print ( s1. issuperset( s2) )
集合生成式
s = { i for i in range ( 1 , 11 ) }
print ( s)