Python实用小技巧(四)

Python实用小技巧

1. 快速找到多个字典中的公共键

from functools import reduce
from random import randint, sample

s1 = {x: randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s2 = {x: randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s3 = {x: randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
print(s1)
print(s2)
print(s3)

print(reduce(lambda a, b: a & b, map(dict.keys, [s1, s2, s3])))

利用reduce加上map函数可以快速找出字典中的共有键

2. 根据字典中值的大小,对字典中的项排序

from random import randint

data = {x: randint(60, 100) for x in 'xyzabc'}
print(data)
print(sorted(data.items(), key=lambda x: x[1]))
print(data)

可以使用sorted函数,加上key对字典进行大小排序

3. 从可迭代对象中分解出N个元素

接下来为大家介绍几种,可迭代对象的解构方式。

# 直接解构,元素个数和变量个数要一致
l = ['Hello', 'Ni', 'Hao']
a, b, c = l
print(a, b, c)

# 头部解构 将头部前面所有的元素取出,放入name中,只留下两个给email和number
record = ('dave', '111@qq.com', 1233, 4432)
*name, email, number = record
print(name)
print(email)
print(number)

# 中间解构,和上面的同理,头部一个,结尾两个,剩下的全由中间接收
line = 'nobody:*:2:-2:Unprivileged User:/var/empty:/user/bin/false'
uname, *field, homedir, sh = line.split(':')
print(uname)
print(homedir)
print(sh)

# 尾部解构 第一个由于tag接收,剩下全由num接收
record = [
    ('foo1', 1, 2),
    ('foo2', 3, 4),
    ('foo3', 5, 6)
]

for tag, *num in record:
    print(num)

4. Python打印颜色控制

了解即可,不会的可以选取一条打印看看

print('\033[30m打印前景色0\033[0m')
print('\033[31m打印前景色1\033[0m')
print('\033[32m打印前景色2\033[0m')
print('\033[33m打印前景色3\033[0m')
print('\033[34m打印前景色4\033[0m')
print('\033[35m打印前景色5\033[0m')
print('\033[36m打印前景色6\033[0m')
print('\033[37m打印前景色7\033[0m')
print('\033[40m打印背景色0\033[0m')
print('\033[41m打印背景色1\033[0m')
print('\033[42m打印背景色2\033[0m')
print('\033[43m打印背景色3\033[0m')
print('\033[44m打印背景色4\033[0m')
print('\033[45m打印背景色5\033[0m')
print('\033[46m打印背景色6\033[0m')
print('\033[47m打印背景色7\033[0m')
print('\033[0m打印显示方式0\033[0m')
print('\033[1m打印显示方式1\033[0m')
print('\033[4m打印显示方式4\033[0m')
print('\033[5m打印显示方式5\033[0m')
print('\033[7m打印显示方式7\033[0m')
print('\033[8m打印显示方式8\033[0m')
print('\033[5;31;47m综合打印\033[0m')

5. Python分数运算

Python使用fractions可以让我们对分数进行操作,比如分数的相加减等,方便我们进行计算

from fractions import Fraction

a = Fraction(5, 4)
b = Fraction(7, 16)

print(a + b)
print(a - b)

print(a * b)

c = a * b
print(c.numerator)
print(c.denominator)

print(float(c))

x = 3.75
y = Fraction(*x.as_integer_ratio())
print(y)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值