概述
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
- 也可以通过
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基础刻意练习--Task 6 字典与集合Day 8的全部内容,希望文章能够帮你解决python基础刻意练习--Task 6 字典与集合Day 8所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复