一、元组
1. 什么是元组(tuple)
"""
元组是容器型数据类型(序列),将()作为容器的标志,里面多个元素用逗号隔开:(元素1, 元素2, 元素3, ...)
元组不可变(不支持增删改);元组是有序的(支持下标操作)
元素:任何类型的数据
"""
t1 = ( )
print ( t1, type ( t1) )
2. 元组就是不可变的列表 —— 列表中和可变无关的操作,元组都支持
1)查
t2 = ( '长津湖' , '战狼' , '阿凡达' , '悬崖上的金鱼姬' )
print ( t2[ - 1 ] , t2[ 0 ] , t2[ 1 ] )
print ( t2[ 2 : ] )
for x in t2:
print ( x, end= ' ' , )
print ( )
for index in range ( len ( t2) ) :
print ( index, t2[ index] , end= ' ' , sep= ':' )
2)相关操作
print ( )
t1 = ( 10 , 20 , 30 )
t2 = ( 111 , 222 )
print ( t1 + t2)
print ( t1* 2 )
print ( ( 10 , 20 , 30 ) == ( 30 , 20 , 10 ) )
print ( ( 100 , 1 , 1000 ) > ( 100 , 2 , - 1000 ) )
print ( 10 in t1)
3)相关函数
t1 = ( 34 , 52 , 89 , 1 , 90 , 32 )
print ( max ( t1) , min ( t1) , sum ( t1) , len ( t1) )
print ( sorted ( t1) )
print ( tuple ( 'abc' ) )
4)相关方法
a = ( 100 , 200 , 300 )
b = ( 100 , 200 , 300 )
print ( id ( a) , id ( b) )
a = [ 100 , 200 , 300 ]
b = [ 100 , 200 , 300 ]
print ( id ( a) , id ( b) )
t1 = ( 34 , 52 , 89 , 1 , 90 , 32 )
print ( t1. count( 34 ) )
print ( t1. index( 1 ) )
3. 元组不只是不可变的列表
1)只有一个元素的元组:(元素,)
list1 = [ 10 ]
print ( list1)
t1 = ( 10 , )
print ( t1, type ( t1) )
2)元组的()在没有歧义的情况下可以省略
t1 = 10 , 20 , 30
print ( t1, type ( t1) )
t2 = 10 , 20 , 30 * 2
print ( t2)
3)使用多个变量直接获取元素(元组和列表都支持)
t1 = ( 100 , 200 , 300 )
x, y, z = t1
print ( x, y, z)
pos = ( 200 , 45 )
x, y = pos
print ( x, y)
t1 = ( '小明' , '男' , 18 , 175 , 60 )
name, * x = t1
print ( name, x)
* a, b, c = t1
print ( a, b, c)
m, * n, t = t1
print ( m, n, t)
二、认识字典(dict)
1. 为什么要引入字典
student = [ 'lql' , 18 , 175 , 60 , 80 , 95 , 65 ]
print ( student[ - 1 ] )
student = { 'name' : 'lql' , 'age' : 18 , 'height' : 175 , 'weight' : 60 , '语文' : 80 , '数学' : 95 , '英语' : 65 }
print ( student[ 'name' ] )
2. 什么是字典(dict)
"""
1)字典是容器型数据类型(序列),将{}作为容器的标志,里面多个键值对用逗号(一个键值对就是字典的一个元素:{键1: 值1, 键2: 值2, ...})
2)字典是可变的(支持增删改);字典无序(不支持下标操作)
3)元素 -- 字典的元素必须是键值对
键 -- 必须是不可变的数据,一般用字符串
值 -- 任何类型的数据都可以作为字典的值
"""
dict1 = { }
print ( dict1)
print ( { 'a' : 10 , 'b' : 20 } == { 'b' : 20 , 'a' : 10 } )
print ( [ 10 , 20 ] == [ 20 , 10 ] )
dict1 = { 10 : 100 , 'a' : 200 , 6 : 300 }
print ( dict1)
dict1 = { '电影名' : '肖申克的救赎' , '票房' : 13.84 , '上映时间' : 1988 }
print ( dict1[ '电影名' ] )
dict2 = { 'a' : 10 , 'b' : 23.4 , 'c' : 'abc' , 'd' : [ 10 , 20 , 30 ] , 'e' : { 'x' : 100 } , 'f' : lambda x: x* 2 }
print ( dict2)
三、字典的增删改查
1. 查 – 获取值
1)查单个:
"""
字典[键] -- 获取指定键对应的值,键不存在会报错
字典.get(键) -- 获取指定键对应的值,键不存在不会报错返回None
字典.get(键, 默认值) -- 获取指定键对应的值,键不存在不会报错返回默认值
"""
student = { 'name' : 'lql' , 'age' : 18 , 'height' : 175 , 'weight' : 60 , '语文' : 80 , '数学' : 95 , '英语' : 65 }
print ( student[ 'name' ] )
print ( student[ '数学' ] )
print ( student. get( 'name' ) )
print ( student. get( '数学' ) )
list1 = [ { 'name' : '小明' , 'age' : 20 } , { 'name' : '小花' , 'age' : 16 } ]
print ( list1[ - 1 ] [ 'age' ] )
key = 'height'
print ( student[ key] )
print ( student. get( 'gender' ) )
print ( student. get( 'gender' , '男' ) )
student = { 'name' : 'lql' , 'age' : 18 , 'height' : 175 , 'weight' : 60 , '语文' : 80 , '数学' : 95 , '英语' : 65 }
print ( student[ '英语' ] )
print ( student. get( 'score' ) )
print ( student. get( 'score' , 0 ) )
print ( student. get( 'score' , 100 ) )
print ( student. get( 'score' , '没有该键' ) )
2)遍历
print ( '=========================遍历=============================' )
"""
for 键 in 字典:
循环体
"""
student = { 'name' : 'lql' , 'age' : 18 , 'height' : 175 , 'weight' : 60 , '语文' : 80 , '数学' : 95 , '英语' : 65 }
for x in student:
print ( x, ':' , student[ x] , end= ' ' , sep= '' )
2. 增、改
print ( )
print ( '======================增、改=====================' )
dog = { 'name' : '财财' , 'age' : 3 , 'breed' : '金毛' }
print ( dog)
dog[ 'gender' ] = '公'
print ( dog)
dog[ 'name' ] = '旺财'
print ( dog)
dogs = [
{ 'name' : '财财' , 'age' : 3 , 'breed' : '金毛' } ,
{ 'name' : '小白' , 'age' : 2 , 'breed' : '哈士奇' } ,
{ 'name' : '小黄' , 'breed' : '田园犬' } ,
{ 'name' : '小花' , 'breed' : '泰迪' }
]
for dog in dogs:
dog. setdefault( 'age' , 0 )
print ( dogs)
3. 删
"""
del 字典[键] -- 删除指定键对应的键对
字典.pop(键) -- 取出指定键对应的值
"""
student = { 'name' : 'lql' , 'age' : 18 , 'height' : 175 , 'weight' : 60 , '语文' : 80 , '数学' : 95 , '英语' : 65 }
del student[ 'weight' ]
print ( student)
result = student. pop( 'height' )
print ( result, student)
四、字典的相关操作函数和方法
1. 相关操作
d1 = { 'a' : 10 , 'b' : 20 , 'c' : 30 }
print ( 10 in d1)
print ( 'b' in d1)
2. 相关函数
"""
dict(数据) -- 将指定数据转换成字典。数据必须满足以下要求:
a.数据本身是一个序列
b.序列中的元素是有且只有两个元素的小序列
c.小序列中的第一个元素必须是不可变的数据
"""
data1 = [ 'ab' , ( 10 , 20 ) , [ 'name' , '小明' ] ]
result = dict ( data1)
print ( result)
d1 = { 'a' : 10 , 'b' : 20 , 'c' : 30 }
list1 = list ( d1)
print ( list1)
3. 字典相关方法
d1 = { 'a' : 10 , 'b' : 20 , 'c' : 30 }
print ( d1. keys( ) )
print ( d1. values( ) )
print ( d1. items( ) )
for key, value in d1. items( ) :
print ( key, value)
d1 = { 'a' : 10 , 'b' : 20 , 'c' : 30 }
d1. update( { 'd' : 30 , 'e' : 40 } )
print ( d1)