Python字典、元组、集合详解

一、字典

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转变为集合类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值