Python小技巧

1.生成全排列

itertools.permutations(iterable, r = None)

  • 如果 r 未指定或为 None ,则 r 默认为 iterable 的长度,并生成所有可能的全排列。

例如由数字 456 的各个位重新排列能组成哪些数字:

from itertools import *

n = 456
n = list(str(n))
all = list(permutations(n))
# Int[0]:print(permutations(n))
# Out[0]:<itertools.permutations object at 0x000002259EA41AE0>
print(all)
res = set()
for i in all:
    num = int("".join(i))
    res.add(num)
print(res)

Out[1]:[('4', '5', '6'), ('4', '6', '5'), ('5', '4', '6'), ('5', '6', '4'), ('6', '4', '5'), ('6', '5', '4')]
Out[2]:{546, 645, 456, 654, 465, 564}

2. 字典取值

当要获取的一个key未在字典中时,一般会报错,就可能它给指定一个默认值

In [1]: data = {"name":"xm", "age":18}
In [2]: gender = data.get("gender", "男")
In [3]: gender
Out[3]: '男'

我们也可以将不存在的值添加进字典,并指定一个默认值

In [4]: data
Out[4]: {'name': 'xm', 'age': 18}
In [5]: gender = data.setdefault("gender","男")
In [6]: gender
Out[6]: '男'
In [7]: data
Out[7]: {'name': 'xm', 'age': 18, 'gender': '男'}

3.字典合并

In [10]: data1 = {"name":"zhangsan","age":30}
In [11]: data2 = {"gender":"男","height":180}
In [12]: data={**data1,**data2}
In [13]: data
Out[13]: {'name': 'zhangsan', 'age': 30, 'gender': '男', 'height': 180}

合并方式还有几种,下次记得了再更新


后面更一些元组列表字典的东西

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值