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

你可能感兴趣的:(python,python,开发语言,后端)