AI智能
改变未来

Python课堂笔记-第七讲(元组&字典&集合)

Python课堂笔记-第七讲(元组&字典&集合)

  • 一、元组
  • 1. 元组简介
  • 2. 元组的基本使用
  • 3. 元组的内置函数
  • 4. 元组运算符
  • 二、字典
    • 1. 字典的基本介绍
    • 2. 字典的使用
    • 3. copy()浅复制
    • 4. 遍历字典
  • 三、集合
    • 1. 集合简介
    • 2. 集合的运算
  • 总结
  • 一、元组

    1. 元组简介

    Python的元组与列表类似,不同之处在于元组的元素不能修改。
    元组使用小括号,列表使用方括号。
    元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    tup1 = (\'physics\', \'chemistry\', 1997, 2000)tup2 = (1, 2, 3, 4, 5 )tup3 = \"a\", \"b\", \"c\", \"d\"

    创建空元组

    tup1 = ()

    元组中只包含一个元素时,需要在元素后面添加逗号

    tup1 = (50,)

    2. 元组的基本使用

    2.1 访问元组

    元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

    tup1 = (\'physics\', \'chemistry\', 1997, 2000);tup2 = (1, 2, 3, 4, 5, 6, 7 );print \"tup1[0]: \", tup1[0]print \"tup2[1:5]: \", tup2[1:5]# 输出结果tup1[0]:  physicstup2[1:5]:  (2, 3, 4, 5)

    2.2 修改元组

    以下修改元组元素操作是非法的。
    tup1[0] = 100

    tup1 = (12, 34.56)tup2 = (\'abc\', \'xyz\')# 创建一个新的元组tup3 = tup1 + tup2print (tup3)#输出:(12, 34.56, \'abc\', \'xyz\')

    2.3 删除元组

    元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。

    tup = (\'Google\', \'Runoob\', 1997, 2000)del tup

    2.4 元组解包

    元组解包指将元组当中的每一个元素都赋值给一个变量。

    # 在对一个元祖解包的时候,变量的数量要和元祖中元素的数量保持一致# my_tuple = 10,20,30,40# a,b,c,d = my_tuple# 如果变量和元素不一致,也可以在变量前面加上一个 *。这样会获取元祖中剩余的元素# 以列表形式返回a,b,*c = my_tupleprint(\'a =\',a)print(\'b =\',b)print(\'c =\',c)# 输出结果a = 10b = 20c = [30, 40]

    3. 元组的内置函数

    Python元组包含了以下内置函数:

    • cmp(tuple1, tuple2)
      比较两个元组元素。

    返回值
    如果比较的元素是同类型的,则比较其值,返回结果。
    如果两个元素不是同一种类型,则检查它们是否是数字:
        如果是数字,执行必要的数字强制类型转换,然后比较。
        如果有一方的元素是数字,则另一方的元素\”大\”(数字是\”最小的\”)
        否则,通过类型名字的字母顺序进行比较。
    如果有一个列表首先到达末尾,则另一个长一点的列表\”大\”。
    如果我们用尽了两个列表的元素而且所> 有元素都是相等的,那么结果就是个平局,就是说返回一个 0。

    • len(tuple)
      计算元组元素个数。
    • max(tuple)
      返回元组中元素最大值。
    • min(tuple)
      返回元组中元素最小值。
    • tuple(seq)
      将列表转换为元组。

    4. 元组运算符

    • 计算元素个数
      表达式:len((1, 2, 3))
      结果:3

    • 连接
      表达式:(1, 2, 3) + (4, 5, 6)
      结果:(1, 2, 3, 4, 5, 6)

    • 复制
      表达式:(‘Hi!’,) * 4
      结果:(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)

    • 元素是否存在
      表达式:3 in (1, 2, 3)
      结果:True

    • 迭代
      表达式:for x in (1, 2, 3): print (x,)
      结果:1 2 3

    二、字典

    1. 字典的基本介绍

    字典属于⼀种新的数据结构称为映射(mapping);

    字典的作⽤和列表类似,都是⽤来存储对象的容器;
    列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反;

    字典我们也称之为键值对(key-value)结构;
    每个字典中都可以有多个键值对,⽽每⼀个键值对我们称其为⼀项(item);

    创建⼀个有数据的字典
    语法 {key:value}
    字典的值可以是任意对象
    字典的键可以是任意的不可变对象(int str bool tuple…)
    字典的键是不能重复的,如果出现重复的后⾯的会替换前⾯的

    2. 字典的使用

    2.1 创建字典

    使用dict()函数来创建字典

    d = dict(name=\'钢铁侠\',age=35,sex=\'男\')

    dict()函数也可以将一个包含有双值子序列转换为字典

    # 双值序列 序列中有2个值 [1,2] (\'b\',\'a\') \'ab\'# 子序列 如果序列中的元素,那么我们就称这个元素为子序列 [1,2,3](No)[(1,2),(3,4)]d = dict([(\'name\',\'钢铁侠\'),(\'age\',35)])

    2.2 访问字典中的值

    可以根据键来获取字典当中的值
    语法:d[key]

    d = {\'name\':\'钢铁侠\',\'age\':38,\'sex\':\'男\'}print(d[\'age\'])

    get(key,[default]) 该方法是用来根据键来获取字典当中的值;
    如果字典当中没有这个Key值,会返回一个None;
    也可以指定一个默认值。来作为第二个参数,这样获取不到Key值的时候就返回默认值。

    print(d.get(\'age\'))print(d.get(\'hello\',\'这个key值不存在\'))

    2.3 修改字典

    修改字典
    语法:d[key] = value

    d = {\'name\':\'钢铁侠\',\'age\':38,\'sex\':\'男\'}# 修改字典中的key-valued[\'name\'] = \'葫芦娃\'# 向字典中添加 key-valued[\'phone\'] = \'123456789\'print(d)  # {\'name\':\'葫芦娃\',\'age\':38,\'sex\':\'男\',\'phone\':\'123456789\'}

    setdefault(key,[default]) 向字典中添加 key-value
    如果这个key已经存在于字典当中,则返回key值,不会对字典有任何的影响
    如果Key不存在 则向字典中添加这个key 并设置value

    d = {\'name\':\'钢铁侠\',\'age\':38,\'sex\':\'男\'}result = d.setdefault(\'name\',\'葫芦娃\')result = d.setdefault(\'hello\',\'葫芦娃\')print(result)  # 葫芦娃print(d)  # {\'name\': \'钢铁侠\', \'age\': 38, \'sex\': \'男\', \'hello\': \'葫芦娃\'}

    update() 将其他字典当中的key-value添加到当前字典当中

    d1 = {\'a\':1,\'b\':2,\'c\':3}d2 = {\'d\':4,\'e\':5,\'f\':6}d1.update(d2)print(d1)  # {\'a\': 1, \'b\': 2, \'c\': 3, \'d\': 4, \'e\': 5, \'f\': 6}print(d2)  # {\'d\': 4, \'e\': 5, \'f\': 6}

    2.4 删除字典元素

    del 来删除字典中的 key-value

    d1 = {\'a\': 1, \'b\': 2, \'c\': 3, \'d\': 4, \'e\': 5, \'f\': 6}del d1[\'a\']del d1[\'b\']print(d1)  # {\'c\': 3, \'d\': 4, \'e\': 5, \'f\': 6}

    popitem() 随机删除一个键值对,一般都会删除最后一个;
    它会将删除之后的键值对作为返回值返回,返回的是一个元祖;
    元祖中有2个元素,第一个元素是删除的Key,第二个元素是删除的value。

    d1={\'c\': 3, \'d\': 4, \'e\': 5, \'f\': 6}d1.popitem()result = d1.popitem()print(result)  # (\'e\', 5)

    3. copy()浅复制

    浅复制只会复制字典的本身,如果字典中还有个字典是不会被复制的;
    用于对字典进行一个浅复制;
    复制以后的对象,和原对象是独立的,修改一个不会影响另一个。

    d = {\'a\':{\'name\':\'黑猫警长\',\'age\':18},\'b\':2,\'c\':3}d2 = d.copy()d[\'a\'] = 60# d2[\'a\'][\'name\'] = \'皮卡丘\'print(\'d = \',d,id(d))    # d =  {\'a\': 60, \'b\': 2, \'c\': 3} 2594264677616print(\'d2 =\',d2,id(d2))  # d2 = {\'a\': {\'name\': \'黑猫警长\', \'age\': 18}, \'b\': 2, \'c\': 3} 2594264677976

    4. 遍历字典

    d.keys() 该方法返回的是一个序列,保存的是字典中所有的键;
    d.values() 该方法返回的是一个序列,保存的是字典中的值;
    d.items() 该方法会返回字典中所有的项 ,它返回的也是一个序列,这个序列当中包含有双值子序列,双值就是字典中的key-value。

    d = {\'name\':\'钢铁侠\',\'age\':38,\'sex\':\'男\'}for k in d.keys():print(d[k])  # dict_keys([\'name\', \'age\', \'sex\'])for v in d.values():print(v)# 钢铁侠# 38# 男

    三、集合

    1. 集合简介

    可以使用{}来创建集合,通过set()来将序列和字典转换成集合
    集合表现形式set 集合和列表非常相似,不同点:
        集合只能存储不可变对象
        集合中存储的对象是无序的
        集合不能出现重复元素

    s = set(\'hello\')print(s,type(s))# 输出{\'o\', \'h\', \'e\', \'l\'} <class \'set\'>
    • len() 获取集合中元素的数量
    s = {\'a\',\'b\',1,2,3}print(len(s))
    • add() 向集合中添加元素
    s = {\'a\',\'b\',1,2,3}# add()这个方法是像集合中添加元素s.add(4)s.add(5)print(s)# {1, 2, 3, 4, 5, \'a\', \'b\'}
    • update() 将一个集合中的元素添加到另一个集合当中
    s = {\'a\',\'b\',1,2,3}s2 = set(\'hello\')s.update(s2)print(s)print(s2)# 输出{1, 2, 3, \'a\', \'e\', \'b\', \'l\', \'h\', \'o\'}{\'h\', \'e\', \'o\', \'l\'}
    • pop() 随机删除集合中的一个元素,一般是删除最后一个元素
    s = {\'a\',\'b\',1,2,3}r = s.pop()print(s)print(r)# 输出{2, 3, \'b\', \'a\'}1
    • remove() 删除集合中指定的元素
    s = {\'a\',\'b\',1,2,3}s.remove(\'a\')
    • clear() 清空集合
    s = {\'a\',\'b\',1,2,3}s.clear()print(s)# set()

    2. 集合的运算

    &  交集运算|  并集运算-  差集运算^  亦或集<= 检查一个集合是否是另一个集合的子集<  检查一个集合是否是另一个集合的真子集>= 检查一个集合是否是另一个集合的超集>  检查一个集合是否是另一个集合的真超集
    s = {1,2,3,4,5}s2 = {3,4,5,6,7}# & 交集运算r = s & s2  # {3, 4, 5}# | 并集运算r = s | s2  # {1, 2, 3, 4, 5, 6, 7}# - 差集运算r = s - s2  # {1, 2}r = s2 - s  # {6, 7}# ^ 亦或集r = s2 ^ sprint(s,s2,r) # {1, 2, 3, 4, 5} {3, 4, 5, 6, 7} {1, 2, 6, 7}a = {1,2,3}b = {1,2,3,4,5}r = b <= aprint(r)  # False

    总结


    点击访问源图

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » Python课堂笔记-第七讲(元组&字典&集合)