文章目录

  • 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相关推荐

  1. 30个Python极简代码

    Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性.如果读者对基本的 Python 语法已经有一些了解,那么这篇文章可能会给你一些启发.作者简单概览了 30 段代码,它们都是 ...

  2. python实现杨辉三角思路_Python极简代码实现杨辉三角示例代码

    Python极简代码实现杨辉三角示例代码 杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列. 把每一行看做一个list,写一个generator,不断输出下一行的list ...

  3. PHP 八羊闪电本地相册图片查看器V1 PHP极简代码直接查看本地文件夹图片 源码下载!

    该源码,直接读取本地IMGAGES文件夹的图片,直接显示在相册,点击放大查看,非常方便,非常适合二次开发,但是不适合小白.没有做UI和设计,比较简陋,所以仅仅售价10元钱,想要的就拿去,不想要的就别拍 ...

  4. LeetCode 1700. 无法吃午餐的学生数量:真假模拟(极简代码) + 奇技淫巧

    [LetMeFly]1700.无法吃午餐的学生数量:真假模拟(极简代码) + 奇技淫巧 力扣题目链接:https://leetcode.cn/problems/number-of-students-u ...

  5. 30个Python常用极简代码,拿走就用

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Fatos Morina 来源丨Python 技术 编辑丨极市 ...

  6. 30个Python常用极简代码

    学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...

  7. merge规则 python_30个Python极简代码,10分钟get常用技巧

    学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...

  8. 30个Python极简代码,10分钟get常用技巧!

    学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...

  9. python 30个小代码_30个Python常用极简代码,拿走就用

    点击上方"测试开发社区",关注并"星标" 每日接收Python&测试开发干货! 学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才 ...

  10. python1000个常用代码-30个Python常用极简代码,拿走就用

    学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...

最新文章

  1. CVPR 2020 Oral 出炉!5篇 Oral 论文抢先看
  2. c++ svd实例整理
  3. 2019.05.15
  4. Charles模拟403/404(Web)
  5. std:: string 的常用使用
  6. 气泡为何是球形?这是一个数学问题!
  7. 查看、删除本地电脑,连接过的共有文件夹(盘符) 「net use」
  8. [0]Android框架揭秘-概论
  9. 2022年要知悉的9大互联网前沿科技
  10. 【古代文学论文】酒文化传播中唐代文学的作用分析(节选)
  11. Altium Designer 步骤总结(转)
  12. 专访丨互联网安全城市巡回赛冠军肖策:“大满贯”背后的秘密
  13. jQuery实现手机号码的验证
  14. mysql gprs 程序_基于STM32控制的GPS定位与GPRS发送数据(程序源码)
  15. 25.(cesium篇)cesium军事标绘-攻击箭头采集(燕尾)
  16. 文件上传控件-如何上传文件-大文件断点续传
  17. 树的基本概念(定义、基本术语、性质)
  18. [转帖]程序开发工具
  19. 茂名石化BPM应用实践 ——业务协同及服务共享平台建设和应用
  20. 安卓模拟器和VT的开启

热门文章

  1. h5 px 转dp_西游女儿国h5手游下载-西游女儿国h5手游下载v2.1.4 安卓版
  2. python与anaconda安装
  3. linux下卸载之前安装的qt4和qt5
  4. nginx limit_req限速设置
  5. windows端口被占用及广告弹窗处理
  6. 乌班图服务器系统网卡驱动,Linux_Ubuntu系统无法衔接网络 该怎样安装无线网卡驱动?,ubuntu已经很好的兼容了主流的 - phpStudy...
  7. “熊猫烧香”有新变种 可自动下载病毒
  8. 开源表单系统推荐:TDUCK填鸭表单
  9. 海量数据存储 - 性能瓶颈 - 解决方案
  10. 快速查找对方IP经典技巧汇总