python字典与集合

python字典与集合,第1张

python字典与集合

目录

字典/集合是无序的 没有索引和切片字典/集合是可变元素字典的键必须是不可能元素!!!!!字典不支持 + *** 作集合只能添加不可变元素创建空对象比较一、字典增添元素二、2种字典修改元素三、4种字典删除元素四、字典查询in五、3种字典取值六、字典复制七、4种字典遍历八、字典sorted排序问题九、集合增加元素十、集合修改元素十一、集合删除元素十二、集合查询十三、交集、并集、差集十四、集合遍历

字典/集合是无序的 没有索引和切片 字典/集合是可变元素 字典的键必须是不可能元素!!!!! 字典不支持 + *** 作 集合只能添加不可变元素
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list_val = list1 + list2
print(list_val)

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
tuple_val = tuple1 + tuple2
print(tuple_val)

# dict1 = {'name': 'Andy'}
# dict2 = {'name': 'Jack'}
# dict_val = dict1 + dict2  # 不支持!
# print(dict_val)
创建空对象比较
# 字典
d = {}
d = dict()

# 集合
s = set()
一、字典增添元素
heros = {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
heros['豹子头'] = '林冲'
print(heros)
{'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘', '豹子头': '林冲'}
二、2种字典修改元素

重复的替换,没有的在后面加

# 方法一
heros['及时雨'] = '宋公明'
print(heros)

# 方法二 update()
dict_val = {'黑旋风': '李逵', '入云龙': '公孙胜', '花和尚': '鲁达'}
heros.update(dict_val)
print(heros)
{'及时雨': '宋公明', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘', '豹子头': '林冲'}
{'及时雨': '宋公明', '玉麒麟': '卢俊义', '花和尚': '鲁达', '母夜叉': '孙二娘', '豹子头': '林冲', '黑旋风': '李逵', '入云龙': '公孙胜'}
三、4种字典删除元素
heros = {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}

# 1. del 删除一个元素或整个字典
del(heros['及时雨'])  # 括号可省
print(heros)
# del(heros)  # 删掉整个字典
# print(heros)

# 2. pop 根据键名删除
heros.pop('花和尚')
print(heros)

# 3. popitem 删除最后一个
heros.popitem()
heros.popitem()
print(heros)

#  4. clear
heros.clear()
print(heros)
{'玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
{'玉麒麟': '卢俊义', '母夜叉': '孙二娘'}
{}
{}
四、字典查询in

根据键名!看key有没有在字典中

heros = {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
if '及时雨' in heros:
    print('该元素在字典中')
else:
    print('该元素不在字典中')
该元素在字典中
五、3种字典取值
heros = {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
# 1. keys()
keys = heros.keys()
print(keys)
print(list(keys))
for key in keys:
    print(key)

# 2. values()
values = heros.values()
print(values)
print(list(values))
for value in values:
    print(value)

# 3. items()
items = heros.items()
print(items)
print(list(items))
key, value = list(items)[0]
print(key)
print(value)
dict_keys(['及时雨', '玉麒麟', '花和尚', '母夜叉'])
['及时雨', '玉麒麟', '花和尚', '母夜叉']
及时雨
玉麒麟
花和尚
母夜叉
dict_values(['宋江', '卢俊义', '鲁智深', '孙二娘'])
['宋江', '卢俊义', '鲁智深', '孙二娘']
宋江
卢俊义
鲁智深
孙二娘
dict_items([('及时雨', '宋江'), ('玉麒麟', '卢俊义'), ('花和尚', '鲁智深'), ('母夜叉', '孙二娘')])
[('及时雨', '宋江'), ('玉麒麟', '卢俊义'), ('花和尚', '鲁智深'), ('母夜叉', '孙二娘')]
及时雨
宋江
六、字典复制
# copy()浅拷贝
heros_copy = heros.copy()
heros.pop('及时雨')
print(heros)
print(heros_copy)
{'玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
{'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
七、4种字典遍历
# 1. 遍历key
heros = {'及时雨': '宋江', '玉麒麟': '卢俊义', '花和尚': '鲁智深', '母夜叉': '孙二娘'}
keys = heros.keys()
print(keys)
for key in keys:
    print(key)

# 2. 遍历value
values = heros.values()
print(values)
for value in values:
    print(value)

# 3. 遍历item
items = heros.items()
print(items)
for item in items:
    print(item)

# 4. 遍历 key-value
items = heros.items()
print(items)
for key, value in items:
    print(f'{key}->{value}')
dict_keys(['及时雨', '玉麒麟', '花和尚', '母夜叉'])
及时雨
玉麒麟
花和尚
母夜叉
dict_values(['宋江', '卢俊义', '鲁智深', '孙二娘'])
宋江
卢俊义
鲁智深
孙二娘
dict_items([('及时雨', '宋江'), ('玉麒麟', '卢俊义'), ('花和尚', '鲁智深'), ('母夜叉', '孙二娘')])
('及时雨', '宋江')
('玉麒麟', '卢俊义')
('花和尚', '鲁智深')
('母夜叉', '孙二娘')
dict_items([('及时雨', '宋江'), ('玉麒麟', '卢俊义'), ('花和尚', '鲁智深'), ('母夜叉', '孙二娘')])
及时雨->宋江
玉麒麟->卢俊义
花和尚->鲁智深
母夜叉->孙二娘
八、字典sorted排序问题
d = {"l": 1, "w": 213, "z": 123}
print(sorted(d))  # 默认.keys()
print(sorted(d.keys()))
print(sorted(d.values()))
print(sorted(d.items()))  # 根据键
九、集合增加元素
set_val = {'hello', 123, (1, 2, 3)}
set_val.add('world')
print(set_val)
{'world', 'hello', 123, (1, 2, 3)}
十、集合修改元素
new_set = {4, 5, 6}
set_val.update(new_set)
print(set_val)
{4, 5, 6, 'world', 'hello', 123, (1, 2, 3)}
十一、集合删除元素
# 1. del new_set
# print(new_set)

# 2. pop 随机删除一个元素
set_val.pop()
set_val.pop()
print(set_val)

# 3. remove() 移除指定的元素,当移除的元素不存在,报错
set_val.remove((1, 2, 3, 4))
print(set_val)

# 4. discard() 移除指定的元素,当移除的元素不存在,不报错,也不改变原集合
set_val.discard((1, 2, 3,4))
print(set_val)
十二、集合查询
if (1, 2, 3,4) in set_val:
    print('该元素存在')
else:
    print('该元素不存在')
该元素不存在
十三、交集、并集、差集
# 交集
set1 = {1, 2, 3, 30, 40, 50}
set2 = {30, 40, 50, 60, 70}
set_val = set1.intersection(set2)
set1.intersection_update(set2)  # 无返回值
print(set_val)
print(set1)

# 并集
set1 = {1, 2, 3, 30, 40, 50}
set2 = {30, 40, 50, 60, 70}
set_val = set1.union(set2)
print(set_val)

# 差集
set1 = {1, 2, 3, 30, 40, 50}
set2 = {30, 40, 50, 60, 70}
set_val = set1.difference(set2)
set1.difference_update(set2)
print(set_val)
print(set1)
{40, 50, 30}
{40, 50, 30}
{1, 2, 3, 70, 40, 50, 60, 30}
{1, 2, 3}
{1, 2, 3}
十四、集合遍历
s = {'1', '2', 'star'}
for value in s:
    print(value)

s = {'1', '2', 'star'}
for i, value in enumerate(s):
    print(f"{i}-->{value}")
2
star
1
0-->2
1-->star
2-->1

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5721167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存