28个极简代码——python
文章目录
- 1、大写首字母
- 2、逗号连接
- 3、分块
- 4、合并两个字典
- 5、回文序列
- 6、检查重复项
- 7、解包
- 8、链式对比
- 9、链式函数调用
- 10、列表的差
- 11、内存占用
- 12、使用枚举
- 13、首字母小写
- 14、通过函数取差
- 15、不使用if-else的计算子
- 16、压缩
- 17、元素频率
- 18 、元音统计
- 19、展开列表
- 20、重复元素判断
- 21、字典默认值
- 22、字符元素组成
- 23、字节占用
- 24、打印N次字符串
- 25、Shuffle
- 26、Try-else
- 27、执行时间
- 28、两列表合并成字典
1、大写首字母
s = 'hello world'
print(s.title())
输出:
Hello World
2、逗号连接
将列表连接成单个字符串,且每个元素间分隔方式设为逗号
hobbies = ['basketball','football','baseball']
print('My hobbies are:'+','.join(hobbies))
输出:
My hobbies are:basketball,football,baseball
3、分块
给定具体的大小,定义一个函数以这个大小切割列表
from math import ceil
def chunk(lst,size):return list(map(lambda x: lst[x*size:x*size+size],list(range(0,ceil(len(lst)/size)))))
print(chunk([1,2,3,4,5],2))
输出:
[[1, 2], [3, 4], [5]]
4、合并两个字典
def merge_dicts(a,b):c = a.copy()c.update(b)return c
a = {'x':1,'y':2}
b = {'z':3}
print(merge_dicts(a,b))
# python3.5以上,合并字典
print({**a,**b})
输出:
{'x': 1, 'y': 2, 'z': 3}
{'x': 1, 'y': 2, 'z': 3}
5、回文序列
检查给定的字符串是不是回文序列,首先把所有字母转化为小写,并移除非英文字母符号。最后,比较字符串与反字符串是否相等,相等则是回文序列
from re import sub
def palindrome(s):s = sub('[\W_]','',s.lower())return s == s[::-1]
print(palindrome('abcba'))
输出:
True
6、检查重复项
检查两列表是不是有重复项
def has_same(ls):return len(ls) != len(set(ls))
x = [1,2,3,4,3]
y = [1,2,3]
print(has_same(x))
print(has_same(y))
输出:
True
False
7、解包
将打包好的成对列表解开成两组不同的元组
array = [['a','b'],['c','d'],['e','f']]
transposed = zip(*array)
print(list(transposed))
输出:
[('a', 'c', 'e'), ('b', 'd', 'f')]
8、链式对比
一行代码使用不同运算符对比多个不同元素
a = 3
print(2 < a < 8)
print(1 == a < 2)
输出:
True
False
9、链式函数调用
一行代码调用多个函数
def add(a,b):return a+b
def subtract(a,b):return a-b
a,b = 4,5
c,d = 5,6
print((subtract if a>b else add)(a,b))
print((subtract if c>d else add)(c,d))
输出:
9
11
10、列表的差
返回第一个列表的元素,其不在第二个列表内。如果同时返回第二个列表独有元素,还需加一句 set_b.difference(set_a)
def unique(a,b):set_a = set(a)set_b = set(b)comparison = set_a.difference(set_b)return list(comparison)
print(unique([1,2,3],[1,2,4]))
输出:
[3]
11、内存占用
检查变量所占用内存
import sys
var = 25
print(sys.getsizeof(var))
输出:
28
12、使用枚举
除了使用for循环遍历,还可以使用枚举获取列表的值和索引
ls = ['a','b','c']
for index,value in enumerate(ls):print('Value:',value,'Index:',index)
输出:
Value: a Index: 0
Value: b Index: 1
Value: c Index: 2
13、首字母小写
def decapital(string):return string[:1].lower()+string[1:]
print(decapital('FooBar'))
输出:
fooBar
14、通过函数取差
首先应用一个指定的函数,然后返回应用函数后结果有差别的列表元素
from math import floor
def difference_by(a,b,fn):b = set(map(fn,b))return [item for item in a if fn(item) not in b]
print(difference_by([2.1,1.2],[2.3,3.4,4.5],floor)) #取整只有1.2不同
print(difference_by([{'x':2},{'x':1}],[{'x':1}],lambda v:v['x']))
输出:
[1.2]
[{'x': 2}]
15、不使用if-else的计算子
不使用条件语句,就实现加减乘除、求幂操作,它通过字典实现
import operator
action = {"+":operator.add,"-":operator.sub,"*":operator.mul,"/":operator.truediv,"**":pow
}
print(action["-"](50,23))
输出:
27
16、压缩
将布尔型的值去掉,例如(False,None,0,‘’),使用filter()函数
def compact(lst):return list(filter(bool,lst))
print(compact([0,1,False,2,'',3,'a','s',34]))
17、元素频率
根据元素频率取列表中最常见的元素
def most_frequent(lis):return max(set(list),key = list.count)
list = [1,2,13,2,1,1,3,4,2,2]
print(most_frequent(list))
输出:
2
18 、元音统计
用正则表达式,统计字符串中的元音(‘a’,‘e’,‘i’,‘o’,‘u’)的个数
import re
def count_yuan(str):return len(re.findall(r'[aeiou]',str,re.IGNORECASE)) #re返回一个列表,忽略大小写搜索
print(count_yuan('fadoor'))
print(count_yuan('YAeood'))
输出:
3
4
19、展开列表
通过递归的方式将列表的嵌套展开为单个列表
def flatten(li):return sum(([x] if not isinstance(x,list) else flatten(x) for x in li),[])
print(flatten([1,[2],[[3,4],5]]))
输出:
[1, 2, 3, 4, 5]
20、重复元素判断
检测列表是否存在重复元素
def all_unique(ls):return len(ls) == len(set(ls))
x = [1,2,1,3,2,3,4,5]
y = [1,2,3,4]
print(all_unique(x))
print(all_unique(y))
输出:
False
True
21、字典默认值
通过key取对应的value值,可以通过以下方式设置默认值。如果get()方法没有设置默认值,如果遇到不存在的key,则返回None
d = {'a':1,'b':2}
print(d.get('a'))
print(d.get('c'))
输出:
1
None
22、字符元素组成
检查两字符串元素是否相同
from collections import Counterdef anagram(first,second):return Counter(first) == Counter(second)
print(anagram('abdc2','dab2c'))
输出:
True
23、字节占用
检测字符串所占字节数
def byte_size(s):return len(s.encode('utf-8'))
print(byte_size('Hello,world'))
print(byte_size('
28个极简代码——python相关推荐
- 30个Python极简代码
Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性.如果读者对基本的 Python 语法已经有一些了解,那么这篇文章可能会给你一些启发.作者简单概览了 30 段代码,它们都是 ...
- python实现杨辉三角思路_Python极简代码实现杨辉三角示例代码
Python极简代码实现杨辉三角示例代码 杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列. 把每一行看做一个list,写一个generator,不断输出下一行的list ...
- PHP 八羊闪电本地相册图片查看器V1 PHP极简代码直接查看本地文件夹图片 源码下载!
该源码,直接读取本地IMGAGES文件夹的图片,直接显示在相册,点击放大查看,非常方便,非常适合二次开发,但是不适合小白.没有做UI和设计,比较简陋,所以仅仅售价10元钱,想要的就拿去,不想要的就别拍 ...
- LeetCode 1700. 无法吃午餐的学生数量:真假模拟(极简代码) + 奇技淫巧
[LetMeFly]1700.无法吃午餐的学生数量:真假模拟(极简代码) + 奇技淫巧 力扣题目链接:https://leetcode.cn/problems/number-of-students-u ...
- 30个Python常用极简代码,拿走就用
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Fatos Morina 来源丨Python 技术 编辑丨极市 ...
- 30个Python常用极简代码
学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...
- merge规则 python_30个Python极简代码,10分钟get常用技巧
学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...
- 30个Python极简代码,10分钟get常用技巧!
学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...
- python 30个小代码_30个Python常用极简代码,拿走就用
点击上方"测试开发社区",关注并"星标" 每日接收Python&测试开发干货! 学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才 ...
- python1000个常用代码-30个Python常用极简代码,拿走就用
学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...
最新文章
- CVPR 2020 Oral 出炉!5篇 Oral 论文抢先看
- c++ svd实例整理
- 2019.05.15
- Charles模拟403/404(Web)
- std:: string 的常用使用
- 气泡为何是球形?这是一个数学问题!
- 查看、删除本地电脑,连接过的共有文件夹(盘符) 「net use」
- [0]Android框架揭秘-概论
- 2022年要知悉的9大互联网前沿科技
- 【古代文学论文】酒文化传播中唐代文学的作用分析(节选)
- Altium Designer 步骤总结(转)
- 专访丨互联网安全城市巡回赛冠军肖策:“大满贯”背后的秘密
- jQuery实现手机号码的验证
- mysql gprs 程序_基于STM32控制的GPS定位与GPRS发送数据(程序源码)
- 25.(cesium篇)cesium军事标绘-攻击箭头采集(燕尾)
- 文件上传控件-如何上传文件-大文件断点续传
- 树的基本概念(定义、基本术语、性质)
- [转帖]程序开发工具
- 茂名石化BPM应用实践 ——业务协同及服务共享平台建设和应用
- 安卓模拟器和VT的开启
热门文章
- h5 px 转dp_西游女儿国h5手游下载-西游女儿国h5手游下载v2.1.4 安卓版
- python与anaconda安装
- linux下卸载之前安装的qt4和qt5
- nginx limit_req限速设置
- windows端口被占用及广告弹窗处理
- 乌班图服务器系统网卡驱动,Linux_Ubuntu系统无法衔接网络 该怎样安装无线网卡驱动?,ubuntu已经很好的兼容了主流的 - phpStudy...
- “熊猫烧香”有新变种 可自动下载病毒
- 开源表单系统推荐:TDUCK填鸭表单
- 海量数据存储 - 性能瓶颈 - 解决方案
- 快速查找对方IP经典技巧汇总