Day 8

一、字典

  • 字典是另一种可变容器模型,且可存储任意类型对象。
  • 字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,分割,整个字典包括在花括号{}中 ,格式如下所示:
diction = {key1 : value1, key2 : value2 }
  • 键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
  • 下面列举一个简单的字典实例:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
# 或者
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
1)访问字典里的值
  • 访问字典中的值,我们需要把相应的键放入到方括号中,如下实例:
dict = {'Name': 'Tim', 'Age': 12, 'Class': 'No.1'}print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
'''
输出:
dict['Name']:  Tim
dict['Age']:  12
'''
  • 如果用字典里没有的键访问数据,会输出错误。
2)修改字典
  • 向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
dict = {'Name': 'Jim', 'Age': 12, 'Class': 'No.1'}dict['Age'] = 17               # 更新 Age
dict['School'] = "高级中学"     # 添加信息print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
'''
dict['Age']:  17
dict['School']:  高级中学
'''
3)删除字典的元素
  • 能删单一的元素也能清空字典,清空只需一项操作。显示删除一个字典用del命令,如下实例:
dict = {'Name': 'Tim', 'Age': 12, 'Class': 'No.1'}del dict['Name']   # 删除键 'Name'
dict.clear()       # 清空字典
del dict           # 删除字典print ("dict['Age']: ", dict['Age'])
  • 运行完后该词典将不复存在,所以最后输出会有错误。
4)字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。以下两个重要的点需要记住:

  • 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
dict = {'Name': 'Tim', 'Age': 12, 'Name': 'Bob'}print ("dict['Name']: ", dict['Name'])
#  dict['Name']:  Bob
  • 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
dict = {['Name']: 'Runoob', 'Age': 7}print ("dict['Name']: ", dict['Name'])
# 输出会出现错误!
5)字典内置函数和方法
  • 字典包含了以下内置函数:
  • 字典包含了以下内置方法:

二、集合

  • 集合(set)是一个无序的不重复元素序列。
  • 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
  • 其创建格式为:
parame = {value01,value02,...}
或者
set(value)
1)创建一个集合:
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)  # {'banana', 'apple', 'pear', 'orange'}
  • 使用set(value)工厂函数,把列表或元组转换成集合:
a = set('abracadabra')
print(a)
# {'r', 'b', 'd', 'c', 'a'}b = set(("Google", "Lsgogroup", "Taobao", "Taobao"))
print(b)
# {'Taobao', 'Lsgogroup', 'Google'}c = set(["Google", "Lsgogroup", "Taobao", "Google"])
print(c)
# {'Taobao', 'Lsgogroup', 'Google'}
  • 两个集合之间也可以进行运算:
a = set('abracadabra')
b = set('alacazam')
print(a)      # {'a', 'r', 'b', 'c', 'd'}
print(a - b)  # {'r', 'd', 'b'}                            # 集合a中包含而集合b中不包含的元素
print(a | b)  # {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}   # 集合a或b中包含的所有元素
print(a & b)  # {'a', 'c'}                                 # 集合a和b中都包含了的元素
print(a ^ b)  # {'r', 'd', 'b', 'm', 'z', 'l'}             # 不同时包含于a和b的元素
2)访问集合中的值
  • 可以使用for把集合中的数据一个个读取出来。
thisset = set(['Google', 'Baidu', 'Taobao'])
for item in thisset:print(item)# Baidu
# Google
# Taobao
  • 也可以通过innot in判断一个元素是否在集合中已经存在。
thisset = set(['Google', 'Baidu', 'Taobao'])
print('Taobao' in thisset)        # True
print('Facebook' not in thisset)  # True
3)集合的内置方法
内置方法 方法描述
set.add(elmnt) 用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
set.remove(item) 用于移除集合中的指定元素。
set.update(set) 用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。
set.intersection(set1, set2 …) 用于返回两个或更多集合中都包含的元素,即交集。
set.union(set1, set2…) 返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。
set.difference(set) 返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。
set.issubset(set) 用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。
set.issuperset(set) 用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。
  • 下面列举一些例子:
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")        # 添加元素
print(fruits)
# {'orange', 'cherry', 'banana', 'apple'}fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")     # 移除元素
print(fruits)  # {'apple', 'cherry'}x = {"apple", "banana", "cherry"}
y = {"google", "baidu", "apple"}
x.update(y)                # 修改元素
print(x)
# {'cherry', 'banana', 'apple', 'google', 'baidu'}a = set('abracadabra')
b = set('alacazam')
print(a)  # {'r', 'a', 'c', 'b', 'd'}
print(b)  # {'c', 'a', 'l', 'm', 'z'}
# 交集
print(a & b)  # {'c', 'a'}
c = a.intersection(b)
print(c)  # {'a', 'c'}
# 并集
print(a | b)  # {'l', 'd', 'm', 'b', 'a', 'r', 'z', 'c'}
c = a.union(b)
print(c)  # {'c', 'a', 'd', 'm', 'r', 'b', 'z', 'l'}
# 差集
print(a - b)  # {'d', 'b', 'r'}
c = a.difference(b)
print(c)  # {'b', 'd', 'r'}x = {"a", "b", "c"}
y = {"f", "e", "d", "c", "b", "a"}
z = x.issubset(y)
print(z)  # True
x = {"a", "b", "c"}
y = {"f", "e", "d", "c", "b"}
z = x.issubset(y)
print(z)  # Falsex = {"f", "e", "d", "c", "b", "a"}
y = {"a", "b", "c"}
z = x.issuperset(y)
print(z)  # True
x = {"f", "e", "d", "c", "b"}
y = {"a", "b", "c"}
z = x.issuperset(y)
print(z)  # False
4)不可变集合
  • frozenset([iterable]) 会返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。例如:
s = frozenset('basketball')
print(s)
# frozenset({'s', 'k', 't', 'e', 'l', 'a', 'b'})

备注:

学习参考资料:
https://www.runoob.com/python3/python3-set.html
https://mp.weixin.qq.com/s?__biz=MzIyNDA1NjA1NQ==&mid=2651011465&idx=1&sn=2f4a24746ed6c6d42e04f2434bcd27b4&chksm=f3e35e11c494d7072fbb215f2ca548801338306f65d9ab78723c2ff02290484b0b983a2879c7&mpshare=1&scene=1&srcid=&sharer_sharetime=1572129397658&sharer_shareid=8c49d4226c319addceef298b781f6bb7&key=f0572ec07140f16088698c0ef9ed666bd510f1eb2e674d5e00b33d1ef29a7c86056b92736f977e9dae2bd5b939807d99ec77a9cee4e42beb6e266ec66ae7c9112c52ff8115b96fe6c820da78b2dddcd0&ascene=1&uin=MTgxNzI3MTY0MQ%3D%3D&devicetype=Windows+10&version=62060841&lang=zh_CN&pass_ticket=CTTViZgHQX3FG9pptB%2FT82I3eIlTTl%2FR8oxPUQqTT2Bp2DW3cDe7M5%2Ff05feFRLl

python基础刻意练习--Task 6 字典与集合相关推荐

  1. 【Python基础】使用列表、字典和集合生成式来缩短代码

    作者 | Philip Wilkinson 编译 | VK 来源 | Towards Datas Science 在使用Python将近一年的时间里,我经常遇到"生成式"这个词,但 ...

  2. Python基础语法七:元组字典和集合

    1.元组 1.什么是元组 元组是不可变的列表(不支持增删改的操作),元组是有序的(支持下标操作) 元组是容器型数据类型,将()作为容器的标志,多个元素之间用逗号,隔开 元组中的元素的要求和列表一样 1 ...

  3. python基础--列表、元组、字典和集合

    列表.元组.字典和集合 在 Python 编程中,我们既需要独立的变量来保存一份数据,也需要序列来保存大量数据. 列表(list)和元组(tuple)比较相似,它们都按顺序保存元素,所有的元素占用一块 ...

  4. Python基础教程:列表、字典、集合推导式

    下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variable = [out_exp_res for out_exp in input_list if out_exp == 2] ...

  5. Python基础知识 2022-11-14 ★ 小结 43-50 字典_集合

    文章目录 字典 字典的特点 创建方式 字典元素的访问 字典元素的添加 字典元素的删除 字典的序列解包 序列解包用于列表 序列解包用于元组 序列解包用于字典 表格的构建和打印,列表和字典综合嵌套 字典核 ...

  6. python基础刻意练习-day15

    python基础刻意练习-day15 魔方方法 魔方方法总是被双下划线包围,例如_int_ 简单定制 基本要求: 1.定制一个计时器的类 2.start和stop方法代表启动计时和停止计时 3.假设计 ...

  7. Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)

    Python学习笔记:列表.字典与集合解析(List, Dict and Set Comprehensions) 1.列表解析 最受喜爱的Python语言特性.过滤一个集合的元素生成一个新的列表. 一 ...

  8. 总结python中列表、元组、字典、集合的共同点和不同点

    前言: 今天就和大家只聊聊python中列表.元组.字典.集合的共同点和不同点,能力有限,写的不好的地方,请大家多多海涵! 列表list 列表和元组·都是有序的 # 元组与列表相似可以通过索引与切片获 ...

  9. 学习Python(5)排序tuple元组dict字典set集合

    目录 学习Python(5)排序&tuple元组&dict字典&set集合 排序 冒泡排序 选择排序 元组 创建元组 元组元素的访问 元组操作 元组功能 二维元组 字典 创建字 ...

  10. 二、python基础(列表、元组、字符串、集合、字典、文件操作,函数基本语法及特性)...

    本节内容 列表.元组操作 字符串.列表.字典.集合操作 文件操作 函数基本语法及特性 一.列表.元组操作 列表是我们最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作: 列表操作:切 ...

最新文章

  1. Spring中ref local与ref bean区别
  2. java月份列表_java – 如何获取两个日期之间的月份和年份列表
  3. 282021年高考成绩查询方法,往年高考成绩怎么查询 查询成绩的方法
  4. 每天一道LeetCode-----将字符串切分,使每个子串都是回文串,计算所有可能结果和最小切分次数
  5. 编译时,输出信息重定向到文件
  6. unix iorp等待队列_FreeRTOS+POSIX之消息队列API详解
  7. csharp语言_电脑绝技教你22天学精Csharp之第五天
  8. C#实现对文件目录的实时监控
  9. Scrapy框架高级操作
  10. PTA:6-8 数组元素的区间删除 (20 分)
  11. TCP/IP 和 Socket 的关系
  12. ubuntu18.04配置ORB-SLAM3
  13. 关于时间序列分析的协整检验、脉冲响应图、方差分解图和格兰杰因果检验
  14. Win10设置系统保护色
  15. 拓扑结构计算机网络结构,什么是计算机网络的拓扑结构
  16. mstar Android解锁,液晶电视维修之Mstar方案从强刷包提取引导的方法
  17. Linux下scons安装
  18. Ormlite的工具使用
  19. 全球与中国N-苯基马来酰亚胺粉市场深度研究分析报告
  20. linux蓝牙服务关闭,使用linux的hciconfig命令配置蓝牙设备

热门文章

  1. 配置HRFormer:High-Resolution Transformer for Dense Prediction条件
  2. clc和clear命令的使用
  3. android华为怎么截屏快捷键,华为P9/P9Plus怎么截图 快捷键截图方法介绍
  4. 小米2017校园招聘笔试题
  5. python-类(class)是什么?怎么用?
  6. 免Fan,国内直接访问,Instagram!文末还有…………
  7. 企业微信sdk调用,通过手机号或微信好友添加客户
  8. 0x80070057复制从服务器复制文件,解决win10更改用户文件夹提示0x80070057的方法
  9. 联想计算机管理员权限设置,联想电脑windows10管理员权限开启的4种方法
  10. vue 3 的devtools beta 版离线下载