15个短代码示例理解python丰富的编程思维
作者:曾亲桂林 发布时间:2022-07-18 08:16:57
标签:python,编程思维,短代码
1.检查重复元素
下面的方法可以检查给定列表中是否有重复的元素。它使用了 set() 属性,该属性将会从列表中删除重复的元素。
def all_unique(lst):
return len(lst) == len(set(lst))
x = [1,1,2,2,3,2,3,4,5,6]
y = [1,2,3,4,5]
all_unique(x) # False
all_unique(y) # True
2.变位词
检测两个字符串是否互为变位词(即互相颠倒字符顺序)
from collections import Counter
def anagram(first, second):
return Counter(first) == Counter(second)
anagram("abcd3", "3acdb")
# True
3.检查内存使用情况
以下代码段可用来检查对象的内存使用情况。
import sys
variable = 30
print(sys.getsizeof(variable))
# 24
4.字节大小计算
以下方法将以字节为单位返回字符串长度。
def byte_size(string):
return(len(string.encode( utf-8 )))
byte_size( ???? ) # 4
byte_size( Hello World ) # 11
5.重复打印字符串 N 次
以下代码不需要使用循环即可打印某个字符串 n 次
n = 2
s ="Programming"
print(s * n);
# ProgrammingProgramming
6.首字母大写
以下代码段使用 title() 方法将字符串内的每个词进行首字母大写。
s = "programming is awesome"
print(s.title())
# Programming Is Awesome
7.分块
以下方法使用 range() 将列表分块为指定大小的较小列表。
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)))))
chunk([1,2,3,4,5],2)
# [[1,2],[3,4],5]
8.压缩
以下方法使用 fliter() 删除列表中的错误值(如:False, None, 0 和“”)
def compact(lst):
return list(filter(bool, lst))
compact([0, 1, False, 2, , 3, a , s , 34])
# [ 1, 2, 3, a , s , 34 ]
9.间隔数
以下代码段可以用来转换一个二维数组。
array = [[ a , b ], [ c , d ], [ e , f ]]
transposed = zip(*array)
print(transposed)
# [( a , c , e ), ( b , d , f )]
10.链式比较
以下代码可以在一行中用各种操作符进行多次比较。
a = 3
print( 2 < a < 8)
# True
print(1 == a < 2)
# False
11.逗号分隔
以下代码段可将字符串列表转换为单个字符串,列表中的每个元素用逗号分隔。
hobbies = ["basketball", "football", "swimming"]
print("My hobbies are: " + ", ".join(hobbies))
# My hobbies are: basketball, football, swimming
12.计算元音字母数
以下方法可计算字符串中元音字母(‘a', ‘e', ‘i', ‘o', ‘u')的数目。
import re
def count_vowels(str):
return len(len(re.findall(r [aeiou] , str, re.IGNORECASE)))
count_vowels( foobar ) # 3
count_vowels( gym ) # 0
13.首字母恢复小写
以下方法可用于将给定字符串的第一个字母转换为小写。
def decapitalize(string):
return str[:1].lower() + str[1:]
decapitalize( FooBar ) # fooBar
decapitalize( FooBar ) # fooBar
14.平面化
以下方法使用递归来展开潜在的深度列表。
def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return retdef
deep_flatten(lst):
result = []
result.extend(spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))
return result
deep_flatten([1, [2], [[3], 4], 5])
# [1,2,3,4,5]
15.差异
该方法只保留第一个迭代器中的值,从而发现两个迭代器之间的差异。
def difference(a, b):
set_a = set(a)
set_b = set(b)
comparison = set_a.difference(set_b)
return
list(comparison)
difference([1,2,3], [1,2,4]) # [3]
来源:https://blog.csdn.net/bigzql/article/details/115543088


猜你喜欢
- 一、85%的广告没人看解读:如何挤进那15%的成功广告中去,吸引了读者就是成功了一半。Quester视角:反过来讲,只有不到1/5的广告能吸
- 先在GitHub找到PHPMailer 并下载https://github.com/PHPMailer/PHPMailer//PHPMail
- el-col-group"el-col-group" 是一个 Vue.js 函数式组件,允许您在 "el-ta
- MybatisPlus处理Mysql的json类型1、在数据库表定义JSON字段;2、在实体类加上@TableName(autoResult
- 前言在ECMAScript中,有两个最常用的创建函数对象的方法,即使用函数表达式或者使用函数声明。对此,ECMAScript规范明确了一点,
- Node.js版本管理工具。Git地址:https://github.com/nvm-sh/nvm安装nvmMac OS:如果已经安装了no
- Python 高级专用类方法的实例详解除了 __getitem__ 和 __setitem__ 之外 Python 还有更多的专用函数。某些
- 下面就是解决方案: 1- From the command prompt, stop isqlplus: c:\>isqlplusct
- 最近想研究下SQL SERVER2012 Enterprise版本的数据库,听说功能很强大。我是在win7上安装的,安装的过程很顺利,我在用
- 越来越多的网站在logo中添加叶子元素,而此类logo又常常使用绿色,这可以给人希望、清新、健康的感觉,从而很容易被接受和认可。今天我们又收
- 1. 查找图像中出现的人脸代码示例:#导入face_recognition模块import face_recognition#将j
- 简介MySQL通过复制(Replication)实现存储系统的高可用。目前,MySQL支持的复制方式有:异步复制(Asynchronous
- 随机背景--当你每次进入该页面时,从已指定的图片文件夹中,随机选取一个图片作为背景显示。这里介绍的方法是用ASP+CSS来实现的。 &nbs
- python关系图的可视化主要就是用来分析一堆数据中,每一条数据的节点之间的连接关系从而更好的分析出人物或其他场景中存在的关联关系。这里使用
- 记录了MySQL 5.7.19 winx64解压缩版安装教程,具体内容如下系统环境:Win7 x64软件准备:mysql 5.7.19 wi
- 引用计数Python语言默认采用的垃圾收集机制是『引用计数法 Reference Counting』,该算法最早George E. Coll
- 概念单元测试 UT测试,针对程序来进行正确检测测试工作,一个优秀强壮代码 需要有完美的 UT测试用例go test基本用法go test 测
- 写在前面因为暂时还没有想好做什么具体的某个项目来提升对python的理解,所以就自己想着做一下小玩意来加强一下自己对一些库和方法的理解分析1
- function nohtml(str) dim re Set re=new 
- SQL实现表里数据按一定顺序排序后,按某几个字段分组后相邻两行数据实现加减乘除运算。思路:1:先把表数据分组排序后打上序号标签2:根据需求把