龙空技术网

大大雷Python零基础课程——第五节:数据类型之集合和字典

大大雷 104

前言:

此刻朋友们对“python集合字典区别”大约比较注意,咱们都需要分析一些“python集合字典区别”的相关内容。那么小编也在网摘上收集了一些关于“python集合字典区别””的相关资讯,希望朋友们能喜欢,你们快快来了解一下吧!

集合

集合是一个无序的,没有重复元素的可迭代对象。

集合中没有重复元素;集合中的元素是不可修改的;集合没有索引,不支持像列表这种通过下标访问元素或者切片操作。创建集合

s = set() # 创建一个空集合s = {1,2,3} # 创建一个有初始值的集合

创建空集合必须使用set(),不可以使用{}, {}是用来创建一个空字典。

访问集合

集合中的元素是无序的,我们只能通过遍历来访问集合中的元素

colors = {'red', 'blue', 'gray', 'yellow'}for color in colors:    print(color)

执行上面的代码,我们会发现打印顺序和我们定义的顺序可能是不一样的,这也证明了集合内的元素是无序的。

添加元素

colors = {'red', 'blue', 'gray'}colors.add('green') # 添加一个元素colors.update(['red', 'yellow', 'pink']) # 添加多个元素print(colors)
移除元素
colors = {'red', 'blue', 'gray', 'green'}colors.remove('red') # 如果删除的元素不存在会报错colors.discard('name') # 如果删除的元素不存在,也不会报错colors.pop() # 会随机的删除一个元素
清空集合
colors = {'red', 'blue', 'gray', 'green'}colors.clear() # 清空集合
集合的运算
colors_A = {'red', 'blue', 'gray'}colors_B = {'red', 'yellow', 'green'}# 并集same_colors = colors_A.intersection(colors_B) # 并集,取集合中的相同元素 {'red'}same_colors = colors_A & colors_B # 和上面效果一样# 合集diff_colors = colors_A.union(colors_B) # 合集,合并两个集合中的所有元素,重复的只会保留一个diff_colors = colors_A | colors_B # 和上面效果一样# 差集colors = colors_A - colors_B # A集合有,但是B集合没有的元素 {'blue', 'gray'}# 对此差集colors = colors_A ^ colors_B # A集合和B集合不同时存在的元素 {'blue', 'gray', 'yellow', 'green'}# 或者用下面的写法colors = colors_A.symmetric_difference(colors_B)
字典

字典由一组或多组键值对组成,其中键(key)需要保证唯一,并且是不可变对象(比如字符串,元组,数值),值(value)可以是任意数据类型。

创建字典

字典的创建格式为d = {key1 : value1, key2 : value2 } 或者 d = dict(key1=value1, key2=value2)

d = dict() # 创建一个空字典d = {} # 创建一个空字典d = {"name":"小明", "age":18, "toys":["汽车", "乐高"]}

上面最后一行代码,我们创建了一个有初始值的字典。

访问字典中的某个元素

# 通过key访问字典中所对应的valuename = d['name'] # key不存在会报错name = d.get('name') # key不存在不会报错,返回Nonename = d.get('age', 18) # 如果key不存在,使用默认值,这里会返回18
添加或修改字典
d = dict(age=18)d['age'] = 20 # key存在则更新对应的值d['name'] = 'Sam' # key不存在则添加d.update(age=21, toys=['汽车','乐高']) # age已存在,则更新,toys不存在,则新增print(d)
删除字典
d = {"name":"小明", "age":18, "toys":["汽车", "乐高"]}d.pop('age') # 通过key删除对应的元素,key不存在会报错del d['age'] # key不存在也会报错d.clear() # 清空整个字典
遍历字典

遍历key, 可以通过key获取对应的value

d = {"name":"Sam", "age":18}for key in d:    print(key) # 打印key    print(d[key]) # 打印value

遍历value:

d = {"name":"Sam", "age":18}for value in d.values():    print(value)

同时遍历key,value:

d = {"name":"Sam", "age":18}for key, value in d.items():    print("key=", key)    print("value=", value)

使用 in 关键字判断key是否在字典中

d = {"name":"Sam", "age":18}if 'name' in d:    print("字典中包含name")
练习作业小明有三个玩具分别是飞机,汽车,挖掘机;小红有三个玩具分别为飞机,乐高,布娃娃。请问:小明和小红一共有几种不同的玩具?分别是什么?有哪个玩具是小明和小红都有的?有哪些玩具是小明有,但是小红没有的?小明现在有40元, 水果店超过50元可以买 苹果,香蕉,桔子三种水果, 否则只能买苹果和桔子。请用字典表示小明现在有多少钱,可以买哪些水果?

标签: #python集合字典区别