一、字典
1、字典的定义
-
字典是键值对的集合,键值对是无序的,可以用{ }、dict()创建:
<字典变量>={<键一>:<值一>,......<键n><值n>}
-
字典的键类型必须为不可变类型的数据(数字、字符串、元组),字典的值可以为任意类型的数据。
-
字典是可变类型,可以增删改
2、字典的增删改查
-
字典的查找
- 通过键获得对应的值:
<值>=<字典变量>[<键>]
<字典变量>[<键>]=<值>
dic={'北京':'天安门','西安':'兵马俑','上海':'世博馆','重庆':'洪崖洞'} print(dic['重庆']) #输出:'洪崖洞'
- 通过键获得对应的值:
-
字典修改
- 变量名[键]= 数据 时,如果这个’键’在字典中存在,那么就会修改这个元素。
dic={'姓名':'小明','年龄':18,'性别':'男'} dic['年龄']=19 print(dic) #输出:{'姓名':'小明','年龄':19,'性别':'男'}
-
字典增加
- 变量名[键]= 数据 时,如果这个’键’在字典中不存在,那么就会新增这个元素。
dic={'姓名':'小明','年龄':18,'性别':'男'} dic['身高']='176cm' print(dic) #输出:{'姓名':'小明','年龄':18,'性别':'男','身高':'176cm'}
-
字典删除
- del 变量[键],删除对应元素
- del 变量,删除整个字典
dic={'姓名':'小明','年龄':18,'性别':'男'} del dic[性别] print(dic) del dic print(dic) #输出: #{'姓名':'小明','年龄':18} #NameError:name 'dic' is not defined
3、字典的处理函数
函数或方法 | 描述 |
---|---|
k in d | 判断键k是否在字典d中,如果在返回True,否则返回False |
d.keys() | 返回字典d中所有的键信息 |
d.values() | 返回字典d中所有的值信息 |
d.items() | 返回字典d中所有的键值对信息 |
例:
dic={'北京':'天安门','西安':'兵马俑','上海':'世博馆','重庆':'洪崖洞'}
print('北京' in dic)
print(dic.keys())
print(dic.values())
print(dic.items())
#输出:
#True
#dic_keys(['北京'],['西安'],['上海'],['重庆'])
#dic_values(['天安门'],['兵马俑'],['世博馆'],['洪崖洞'])
#dic_items([('北京','天安门'),('西安','兵马俑'),('上海','世博馆'),('重庆','洪崖洞')])
函数或方法 | 描述 |
---|---|
d.get(k,default) | 键存在,则返回相应值,若不存在,则返回default值 |
len(d) | 返回字典d中键的个数 |
例:
dic={'北京':'天安门','西安':'兵马俑','上海':'世博馆','重庆':'洪崖洞'}
print(dic.get('北京','中国'))
print(dic.get('南京'))
print(dic.get('南京','中国'))
print(len(dic))
#输出:
#天安门
#None
#中国
#4
-
4、字典的遍历
- 语法结构:
for i in dic:
<语句块>
for i in dic.keys():
<语句块>
for i in dic.values():
<语句块>
for i in dic.items():
<语句块>
例:
dic={'北京':'天安门','西安':'兵马俑','上海':'世博馆','重庆':'洪崖洞'} for i in dic: print(i,end=' ') print() for i in dic.keys(): print(i,end=' ') print() for i in dic.values(): print(i,end=' ') print() for i in dic.items(): print(i,end=' ') #输出: #北京 西安 上海 重庆 #北京 西安 上海 重庆 #天安门 兵马俑 世博馆 洪崖洞 #('北京', '天安门') ('西安', '兵马俑') ('上海', '世博馆') ('重庆', '洪崖洞')
- 语法结构:
二、元组
1、元组的定义
- 元组是由一系列特定顺序排序的元素组成,但它是不可变序列。元组的所有元素都放在’( )‘中,两个相邻元素用’ , '分隔。
- 可以将整数、实数、字符串、列表、元组等任何类型的内容放入元组中,并且在同一个元组中,元素的类型可以不同,因为它们之间没有任何关系。
- 通常情况下元组用于保存程序中不可修改的内容。
tup1=('Google','CSDN',1880,4567) tup2=(1,2,3,4,5) tup3=("a","b","c","d","e") tup4=('white','black','red','pink',[1,'a',2])
2、元组创建和删除
-
元组可以通过多种方式创建
创建方式 描述 用法 ( ) ( )直接创建,最常见的创建方式 tup(1,2,3) tuple( ) 通过tuple( )函数将其他类型变量准换至元组类型 tup=tuple(‘123’) 元组推导式 newtup=(Expression for i in oldtup if condition) tup=(i for i in range(5)) 例:
tup1=(1,2,3) str='12345' tup2=tuple(str) tup3=tuple(i for i in range(1,5)) print(tup1) print(tup2) print(tup3) #(1, 2, 3) #('1', '2', '3', '4', '5') #(1, 2, 3, 4)
-
直接创建时,我们使用’( )'将元素括起来进行创建,但是小括号并不是必须的,只要将一组值用逗号分隔开来,Python就可以将其视作元组。
tup1=1,2,3,4 print(type(tup1)) print(tup1) #<class 'tuple'> #(1, 2, 3, 4)
-
元组删除
-对于已经创建的元组,不在使用时,可以用del语句将其整体删除。tup=(1,2,3) del tup
注意:在删除元组前,一定保证删除的元组名称是存在的,否则会报错。
-
创建空元组
- 在python中也可以创建空元组:
tup=()
- 创建空元组的意义:**空元组可以应用在为函数传递一个空值或者返回空值时。**例如:定义一个函数必须传递一个元组类型的值,而我们还不想为它传递一组数据,那么就可以创建一个空元组传递给它。
-
创建长度为1的元组
- 如果要创建的元组只包含一个元素,则需要在定义元组时,在元素后面加上一个逗号’ , '。
tup1=(1) tup2=('1') tup3=(1,) print(type(tup1)) print(type(tup2)) print(type(tup3)) #<class 'int'> #<class 'str'> #<class 'tuple'>
-
修改元组元素
- 元组是不可变序列,所以我们不能对它的单个元素值进行修改。
tup=(1,2,3,4) tup[1]=15 print(tup)
像上述代码,如果直接修改元素程序会报错,但是我们可以对元组进行重新赋值。
tup=(1,2,3,4) tup=(1,5,3,4) print(tup) #(1, 5, 3, 4)
三、集合
集合的定义
- 集合是多个元素的无序组合。集合元素直接无序,每个元素唯一,不存在相同元素。集合元素不可修改,不可能是可变数据类型。集合用’ { } ‘表示,元素之间用’ , '分隔。
- 建立集合类型用{}、set(),建立空集合必须使用set()。
集合处理方法
- 集合是一种可变类型,但是集合不能修改元素和通过索引查找元素,只能增加元素和删除元素。
操作函数或方法 | 描述 |
---|---|
len() | 返回集合S的元素个数 |
x in S | 判断S中元素x,x在集合S中,返回True,否则返回False |
x not in S | 判断S中元素x,x不在集合S中,返回True,否则返回False |
set(x) | 将其他类型变量x转变为集合类型 |