人生苦短,我用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)      可变      不可重复      无序       { }

猜你喜欢

转载自www.cnblogs.com/wqs-Time/p/12132377.html