dream_it_possible: 千山踏飞雪,秋水共长天
pytricks-1-python每周小知识点
0 前言
- pytricks每周不定期不定量更新,一个或多个python小技巧或小知识
- python3.8
- 20201009 初稿
- 20201010 更新
* 1.1 增加dict自带方法(改变原来的dict大小)
* 1.1 进一步考虑完善(有交集的情况)
1 正文
1.1 py3.5+中,仅使用一个简单语句合并两个字典的方法
- python的拆包装包
- 已知x、y为两个字典类型,求将其合并为z的语句
方法一:z = {**x, **y} x 、y有交集(key重复)时,后者的key-value覆盖前者的key-value,即取决于顺序,后者覆盖前者。
方法二:z = dict(x, **y); 有交集时,y的key-value覆盖x的key-value
方法三: x.update(y),前两者都不改变原来的x、y;而该方法是向x内添加y的所有元素,重复key时用y的覆盖x(类似于数组的extend)
# 方法三:
x = {'a': 1, 'b': 2}
y = {'a': 111, 'bb': 2}
x.update(y)
#y.update(x)
print(x)
## out:
#x: {'a': 111, 'b': 2, 'bb': 2}
#y: {'a': 111, 'bb': 2, 'b': 2}
# 方法1 有交集时
x = {'a': 1, 'b': 2}
y = {'a': 111, 'bb': 2}
z1 = {**x, **y}
z2 = {**y, **x}
#print(z1, '\n', z2)
## out:
# z1: 'a': 111, 'b': 2, 'bb': 2}
# z2: {'a': 1, 'bb': 2, 'b': 2}
# 方法二
z1 = dict(x, **y)
z2 = dict(y, **x)
#print(z1, '\n', z2)
## out:
# z1: 'a': 111, 'b': 2, 'bb': 2}
# z2: {'a': 1, 'bb': 2, 'b': 2}
1.2 python中,一次性求取多个条件的布尔值运算结果
- 已知3个表达式x、y、z,如果x、y、z中至少有一个等于1,则满足条件