python基础刻意练习--Task 6 字典与集合
2019-10-27 14:06
609 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Jupiker/article/details/102766388
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 3ff7 # 更新 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
- 也可以通过
in
或not 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) # False x = {"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基础 刻意练习 task01 by littlecircle327
- python基础->Task3->字典-集合-流程语句
- Python基础【数据结构:列表 | 元组 | 集合 | 字典】
- Python-Task6 字典和集合
- 刻意练习Python基础——day 02:条件与循环
- Python基础入门3--list集合,元组,字典
- Python基础练习之列表,字典,元组:统计字符数,输出最大之最小值,路径组装
- Python 基础---字典、集合
- python入门:基础,列表、元组、字典及集合类型
- python基础--元组,集合和字典
- python之列表、元祖、集合、字典基础篇
- 刻意练习Python基础 ——day 03:列表与元组(上)
- 刻意练习:Python基础——Task04.字符串与序列
- Python基础二——列表,元组,字典,集合
- Python基础入门——元组、列表、集合、字典的使用方法
- Python基础(4)_字典、集合、bool值
- Python基础操作 列表 字典结构 集合 循环 判断 复制操作 函数
- python基础——字典综合练习
- Python Task 06:字典与集合
- Python基础练习——字符串和字典的转换