您的位置:首页 > 编程语言 > Python开发

新手小白学python——python基础-字典和集合

2019-09-21 10:39 706 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_44252609/article/details/101099957

字典

字典的定义:在Python中保存键值对(key = value)格式的数据的一种类型叫做字典(dict)
字典的格式:

# 创建一个带参的字典
new_dict = {'name': '张三', 'age': 50, 'sex': '男'}
# 创建一个空字典
new_dict1= {}

字典的应用场景:由于字典格式的特殊性,在保存一些事物的信息时,可以使用,处理起来更加方便快捷
字典中的注意事项:字典中的key应该是不可变数据类型,value可以是任意数据类型
字典的遍历:(通常是通过遍历键,来获取值)

# 遍历字典
new_dict = {'name': '张三', 'age': 50, 'sex': '男'}
for key in new_dict:
print(new_dict[key])
"""
打印结果:
张三
50
男
"""

字典中常用的方法:

  1. 增加
方法 描述
变量名[key] = value 通过key添加value值,如果key存在,则直接覆盖
setdefault(key, default_value) 指定key和value, 如果key存在则返回其值,不会修改原来的值
new_dict = {'name': '张三', 'age': 50, 'sex': '男'}
new_dict1 = {'name': '李四', 'sex': '男', 'height': 178}
# 通过key修改
new_dict['name'] = 'Tom'
print(new_dict)  # {'name': 'Tom', 'age': 50, 'sex': '男'}

#  setdefault() 方法
new_dict.setdefault('height', 178)
print(new_dict)  # {'name': 'Tom', 'age': 50, 'sex': '男', 'height': 178}
new_dict.setdefault('name', 'jack')
print(new_dict)  # {'name': '张三', 'age': 50, 'sex': '男', 'height': 178}
  1. 删除
方法 描述
pop 弹出,返回删除指定元素
popitem 随机弹出一个键值元组,这里随机的原因是因为字典无序
clear 清空字典
new_dict = {'name': '张三', 'age': 50, 'sex': '男', 'height': 178}
# pop 方法
new_dict.pop('name')
print(new_dict)  # {'age': 50, 'sex': '男', 'height': 178}

# popitem 方法
new_dict.popitem()
print(new_dict)  # {'age': 50, 'sex': '男'}

# clear 方法
new_dict.clear()
print(new_dict)  # {}
  1. 修改
方法 描述
变量名[key] = value 通过key添加value值,如果key存在,则直接覆盖
update() 传递一个字典。如果key相同则覆盖,没有的key则添加
new_dict = {'name': '张三', 'age': 50, 'sex': '男'}
new_dict1 = {'name': '李四', 'sex': '男', 'height': 178}
# 通过key修改
new_dict['name'] = 'Tom'
print(new_dict)  # {'name': 'Tom', 'age': 50, 'sex': '男'}

# update() 方法
new_dict.update(new_dict1)
print(new_dict)  # {'name': '李四', 'age': 50, 'sex': '男', 'height': 178}
  1. 查找
方法 描述
keys 返回一个包含字典所有key的列表
values 返回一个包含字典所有value的列表
get 以键取值,如果指定键不存在,默认返回None,可以指定返回内容
update 以字典格式更新指定键的内容,如果键不存在,创建键和值
items 返回字典键值呈元组形式的格式
len 返回元组的键值对个数
info = {'name': 'zs', 'age': 10, 'height': 1.78}
# 根据key查找
name = info['name']
print(name)  # zs

# get() 方法
name = info.get('name')
print(name)  # zs
# keys方法
keys = info.keys()
print(keys)  # dict_keys(['name', 'age', 'height'])

# values方法
values = info.values()
print(values)  # dict_values(['zs', 10, 1.78])

# items 方法
items = info.items()
print(items)  # dict_items([('name', 'zs'), ('age', 10), ('height', 1.78)])

# len方法
l = len(info)
print(l)  # 3

在这里说一个字典中的操作:键值互换

info = {'name': 'zs', 'age': 10, 'height': 1.78}
dict2 = {}
for k, v in info.items():
dict2[v] = k
print(dict2)  # {'zs': 'name', 10: 'age', 1.78: 'height'}

集合

集合的定义:集合是盛放多个数据的一种类型。
集合的特点:集合中的元素的无序的,唯一的,不可改变类型。
集合的创建:

# 集合的创建
# 创建一个空集合
set1 = set()
# 创建一个非空集合
set2 = {1, 2, 3, 4}

集合中的操作

  1. 添加操作:add() 和 update()
set2 = {1, 2, 3, 4}
set2.add(5)
print(set2)  # {1, 2, 3, 4, 5}
set2.update({3, 4, 5, 6})
print(set2)  # {1, 2, 3, 4, 5, 6}
  1. 删除操作
    pop, remove, clear, del
set1 = {1, 2, 3, 4, 5, 6}
# pop
set1.pop()
print(set1)  # {2, 3, 4, 5, 6}
# remove
set1.remove(4)
print(set1)  # {2, 3, 5, 6}
# clear
set1.clear()
print(set1)  # set()
# del
del set1
print(set1)  # 报错 NameError: name 'set1' is not defined

集合中的数学运算

  1. 交集(& 或者 intersection) 取公共部分
  2. 并集(| 或者 union) 取去除重复部分的内容
  3. 差集(- 或者 difference) 取 set1或set2中除去公共部分的内容
  4. 反差集(^ 或者 symmetric_difference)
  5. 子集 (< 或者 issubset)
  6. 超集 (> 或者 issuperset)
# 交集
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
set3 = {1, 2, 3}
print(set1 & set2)
print(set1.intersection(set2))  # {4, 5}

# 并集
print(set1 | set2)
print(set1.union(set2))  # {1, 2, 3, 4, 5, 6, 7, 8}

# 差集
print(set1-set2)
print(set1.difference(set2))  # {1, 2, 3}

# 反交集
print(set1 ^ set2)
print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}

# 子集
print(set3 < set1)  # True
print(set3.issubset(set1))  # True

# 超集
print(set1 > set3)  # True
print(set1.issuperset(set3))  # True

集合的应用场景:
可以用来对数据进去重操作
例如:
去除列表中的重复元素

# 去重操作
lst = [1, 2, 3, 4, 4, 3, 2]
set1 = set(lst)
print(set1)  # {1, 2, 3, 4}
list2 = list(set1)
print(list2)  # [1, 2, 3, 4]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: