zoukankan      html  css  js  c++  java
  • 人生苦短,我用Python(5)

    1、遍历字典:

      (1)字典是以“键-值对”的形式存储数据的,所以需要通过这些“间-值对”进行获取。Python提供了遍历字典的方法,通过遍历可以获取字典中的全部“键-值对”。使用字典对象的item()方法可以获取字典得“键-值对”列表,语法格式如下:

    dictionary.items()
        #dictionary为字典对象;返回值为可遍历的(键-值对)的元组列表。
    dictionary={'qq':'123456','姓名':'张三','联系电话':'123456789'}
    for i in dictionary.items():
        print(i)

       (2)想要获取具体的每个键或值。

    dictionary={'qq':'123456','wechat':'456789','phone':'123456789'}
    for key,value in dictionary.items(): print(key,"的联系电话是:",value)

      再Python中还可以使用keys()方法和values()方法,用于返回字典的“键”和“值”列表,它们的使用方法同items()方法类似,也需要通过for()循环遍历字典列表,获取相应的键和值。

    4.4.4 添加、修改和删除字典元素

      (1)添加字典元素

      由于字典是可变序列,所以可以随时在字典中添加“键-值对”。向字典中添加元素的语法格式如下:

    dictionary[key]=value
      dictionary:表示字典名称
      key:表示要添加元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组。
      value:表示元素的值,可以是任何数据类型,不是必须唯一的。
    dictionary=dict(qq='123',wechat='456',phone='123456')
    dictionary["watch"]="000000"
        print(dictionary)

       (2)修改字典元素

      在字典中,“键”必须是唯一的,如果新添加的”键“与已经存在的”键“重复,那么将使用新的”值“替换原来该”键“的值,相当于修改字典的元素。

    dictionary={'qq'='123','wechat'='456','phone'='123456'}
    print("原字典:",dictionary)
    dictionary["phone"]="000000"
    print("新字典:",dictionary)

       (3)删除字典元素

      当字典中的某一个元素不需要时,使用del命令将其删除。

    dictionary=dict(qq='123',wechat='456',phone='123456')
    print("原字典:",dictionary)
    del dictionary["phone"]
    print("新字典:",dictionary)

       当删除一个不存的键时,会抛出异常,此时使用判断条件进行删除。

    dictionary=dict(qq='123',wechat='456',phone='123456')
    print("原字典:",dictionary)
    if "phone" in dictionary:
        del dictionary["phone"]
        print("新字典:",dictionary)
    else:
        print("不存在这个键")

     4.4.5 字典推导式

      使用字典推导式可以快速生成一个字典。

      (1)生成一个包含四个随机数的字典。

    import random
    randomdict={i:random.randint(10,100) for i in range(1,5)}
    for j in randomdict.items():
        print(j)

       (2)使用字典推导式实现根据名字和联系方式创建一个字典。

    name=["qq","wechat","phone"]
    tel=["123","456","123456"]
    dictionary={name:tel+"号码" for name,tel in zip(name,tel)}
    print(dictionary)

     4.5 集合

      Python中的集合同数学中的集合概念类似,用于保存不重复元素。有可变集合(set)和不可变集合(frozenset)两种。

      在形式上,集合的所有元素都放在一对”{ }“中,两个相邻元素间使用”,“分隔。

    4.5.1 集合的创建

      在Python中,创建set集合也可以向列表、元组和字典一样,直接将集合赋值给变量从而实现创建集合,即直接使用”{ }“创建。

    setname={element1,element2,element3...}
      setname:表示集合的名称,可以是任何符合Python命名规则的标识符。
      element1,element2,element3:表示集合中的元素,个数没有限制,只要是Python支持的数据类型就可以。

      在创建集合时,如果输入了重复的元素,Python会自动只保留一个。

    set1={'水平','双鱼','射手'}
    set2={6,4,7,1,8}
    set3={'Python',28,('人生苦短,我用Python')}
    print(set1)
    print(set2)
    print(set3)

       由于Python中的set集合是无序的,所以每次输出时元素的排列顺序可能都不相同。

      1、使用set()函数创建

      在Python中可以使用set()函数将列表、元组等其他可迭代对象转换为集合。set()函数的语法格式如下。

    setname=set(iteration)
      setname:表示集合名称
      iteration:表示要转换为集合的可迭代对象,可以是列表、元组、range对象等,也可以是字符串,如果是字符串,返回的集合将是包含全部不重复字符的集合。
    set1=set("请努力学习,加油")
    set2=set([2.333,3.14,8.32])
    set3=set(('人生苦短','我用Python'))
    print(set1)
    print(set2)
    print(set3)

       在创建集合时,如果出现了重复元素,那么将只保留一个。

      在创建空集合时,只能使用set()实现,而不能使用一对”{ }“实现,因为在Python中,直接使用一对”{ }“表示创建一个空字典。

      2、使用set()函数创建保存学生选课信息的集合。

    Python=set(['小红','小明','小刚'])
    C=set(['大红','大明','大刚'])
    print("选择python的人有:",Python)
    print("选择c的人有:",C)

      在Python中,创建集合推荐采用set()函数实现。

    4.5.2 集合的创建和删除

      集合是可变序列,可以实现对其添加或者删除元素。

      1、向集合中添加元素:

      向集合中添加元素可以使用add()方法实现,语法格式如下:

    setname.add(element)
      setname:表示要添加元素的集合
      element:表示要添加的元素内容,只能使用字符串、数字及布尔类型的True或者False等,不能使用列表、元组等可迭代对象。
    course=set(['Linux','Java','Go','Shell'])
    print("此时的课程有:",course)
    course.add("Python")
    print("现在的课程有:",course)

       2、从集合中删除元素

      在Python中,可以使用del命令删除整个集合,也可以使用集合的pop()方法或者remove()方法删除一个元素,或者使用集合对象的clear()方法清空集合,即删除集合中的全部元素,使其变为空集合。

    course=set(['Linux','Java','Go','Shell','Python','Zabbix','Docker'])
    print("现在存在的所有集合元素:",course)
    course.remove("Zabbix")
    print("使用remove()方法移除指定元素:",course)
    course.pop()
    print("使用pop()方法随机删除一个元素:",course)
    course.clear()
    print("使用clear()方法清空集合:",course)

    4.5.3 集合的交集、并集和差集运算

      集合最常用的操作就是进行交集、并集、差集和对称差集运算。

      交集运算符  &

      并集运算符  |

      差集运算符  -

      对称差集运算符  ^

      1、统计学生选课,需要知道哪些学生选择了Python没有选择C语言,需要知道那些学生既选择了Python又选择了C语言以及选课的全部学生。

    Python=set(['小红','小明','小刚','小王'])
    C=set(['小黄','小花','小红','小东'])
    print("选择Python的人有:",Python)
    print("选择C的人有:",C)
    print("并集运算:",Python | C)  #所有选课的学生
    print("交集运算:",Python & C)  #既选择Python又选择C的学生
    print("差集运算:",Python - C)  #选择Python没有选择C的学生

    4.6 列表、元组、字典和集合的区别

      1、列表、元组、字典和集合的区别:

      数据结构    是否可变    是否重复    是否有序    定义符号

      列表(list)      可变       可重复      有序       [ ]

      元组(tuple)    不可变       可重复      有序        ()

      字典(dictionary)   可变       可重复      无序       {key:value}

      集合(set)      可变      不可重复      无序       { }

  • 相关阅读:
    SQL注入原理
    攻防世界-wp
    BUUCTF-warmup
    springboot邮箱验证功能部署到服务器后报25 timeout的解决方式
    关于MySQL建立库表时大写自动转换为小写的解决方案
    springboot格式化timestamp时间
    mysql高级查询
    pip更新一直time out 的解决方法
    关于springboot使用mybatis查询出现空指针,以及debug出现All Elements all Null的解决方法
    抽象工厂模式
  • 原文地址:https://www.cnblogs.com/wqs-Time/p/12132377.html
Copyright © 2011-2022 走看看