Python:值得学习的二十个技巧
本文为大家介绍20个值得记住的 Python 技巧,可以提升您编程技巧, 并为您节省大量时间。 在平常编程过程中,以下技巧大多非常有用。
1 字符串反转
使用切片反转字符串。
str1="qwert"
rev_str1=str1[::-1]
#输出
# trewq
2 使首字母大写
将字符串转换为首字母大写。使用 title()方法完成的。
str1="this is a book"
print(str1.title())
# This Is A Book
3 在字符串中查找唯一元素
下面代码可用于查找字符串中所有的唯一元素。
str1="aabbccccdddd"
set1=set(str1)
new_str=''.join(set1)
print(new_str)
4 重复打印字符串或列表
下面的代码中,对字符串或列表使用(*)。把字符串或列表复制多次。
i=4
str1="abcd"
list1=[1,2]
print(str1*i)
# abcdabcdabcdabcd
print(list1*i)
# [1,2,1,2,1,2,1,2]
5 列表推导式
列表推导式为我们提供了一种在其他列表基础上创建列表的好方法。 下面代码 通过将旧列表的每个元素乘以 2 来创建新列表。
list1=[1,2,3]
new_list1=[2*i for i in list1]
# [2,4,6]
6 交换变量
不使用另一个变量,实现变量交换。
x=1
y=2
x,y=y,x
print(x) # 2
print(y) # 1
7 将字符串拆分为子字符串列表
我们使用字符串类中的.split()方法将字符串拆分为子字符串列表,还可以将要分割的分隔符作为参数传递。
str1="This is a book"
str2="test/ str 2"
print(str1.split()) # ['This', 'is', 'a', 'book']
print(str2.split('/')) # ['test', ' str 2']
8 将字符串列表组合成单个字符串
join()将作为参数传递的字符串列表组合为单个字符串。这种情况下,我们使用逗号分隔符将它们分开。
list_str=['This','is','a','book']
print(','.join(list_str))
# This,is,a,book
9 检查回文字符串
我们已经讨论过如何反转字符串,因此回文字符串在 Python 中判断起来非常简单。
str1="qqaabb"
if str1==str1[::-1]:
print("回文")
else:
print("不是")
# 不是
10 列表中的元素统计
使用 Python Counter 类。Python 计数器跟踪容器中每个元素的频数, Counter()返回一个字典,元素作为键,频数作为值。
另外使用 most_common()函数来获取列表中的 出现次数最多的元素。
from collections import Counter
list1=['a','b','a','c','c','c']
count=Counter(list1)
print(count)
print(count['b'])
print(count.most_common(1))
11 判断两个字符串是否为异序词
异序词 是通过重新排列不同单词或短语的字母而形成的单词或短语。 如果两个字符串的 Counter 对象相等,那么它们就是 相同字母异序词 对。
s1,s2,s3="acbde","abced","abcda"
c1,c2,c3=Counter(s1),Counter(s2),Counter(s3)
if c1==c2:
print('1和2是异序词')
if c1==c3:
print('1和3是异序词')
12 使用 try-except-else 块
try / except 是 Python 中的异常处理模块,添加 else 语句,会在 try 块中没有引发异常的情况下运行。
a,b=1,0
try:
print(a/b)
# b为0的时候触发异常
except ZeroDivisionError:
print("除数为0")
else:
print("不存在异常")
finally:
print("此段总是会执行")
13 通过枚举获取索引 / 值对
可以使用下面的脚本,遍历列表中的值及其索引。
list1=['a','b','c','d','e']
for idx,val in enumerate(list1):
print('{0}:{1}'.format(idx,val))
# 0:a
# 1:b
# 2:c
# 3:d
# 4:e
14 获取对象的内存使用信息
下面脚本可用于检查对象的内存使用信息。
import sys
num=21
print(sys.getsizeof(num))
15 合并两个字典
在 Python 2 中,使用 update()合并两个字典,Python 3 变得更加简单。
下面脚本中,两个字典被合并。在相交的情况下,使用第二个字典中的值。
dic1={'app':9,'banana':6}
dic2={'banana':4,'orange':8}
com_dict={**dic1,**dic2}
# {'apple':9,'banana':4,'orange':8}
16 计算代码执行所需的时间
下面代码使用库函数来计算执行代码所需的时间消耗多少毫秒。
import time
s_time=time.time()
a,b=1,2
c=a+b
e_time=time.time()
time_taken_in_micro=(e_time-stime)*(10**6)
print("程序运行的毫秒:{0} ms".format(time_taken_in_micro))
17 展开列表清单
有时不知道列表的嵌套深度,并且只想把所有元素放在一个普通列表中。 可以通下面的方法得到数据:
from iteration_utilities import deepflatten
# 如果嵌套列表的深度只有1层
def flatten(l):
return [item for sublist in l for item in sublist]
l=[[1,2,3],[3]]
print(flatten(l))
# [1,2,3,3]
# 如果不知道列表嵌套深度
l=[[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]]
print(list(deepflatten(l,depth=3)))
# [1,2,3,4,5,6,7,8,9,10]
18 从列表中随机取样
下面代码从给定列表中生成了 n 个随机样本。
import random
list1=['a','b','c','d','e']
ns=2
samples=random.sample(list1,ns)
print(samples)
# ['a','c']
或者使用secrets库生成随机样本进行, 下面代码仅适用于 Python 3.x。
import secrets
s_rand=secrets.SystemRanom()
list1=['a','b','c','d','e']
ns=2
samples=s_rand.sample(list1,ns)
print(samples)
# ['c','d']
19 数字列表化
下面代码将整数转换为数字列表。
nums=123456
# 使用map
digit_list=list(map(int,str(nums)))
print(digit_list)
# [1,2,3,4,5,6]
# 使用列表表达式
digit_list=[int(x) for x in str(nums)]
print(digit_list)
# [1,2,3,4,5,6]
20 唯一性 检查
下面的函数检查列表中的元素是否唯一。
def unique(l):
if len(l)==len(set(l)):
print("所有元素是唯一的")
else:
print("存在重复")
unique([1,2,3,4])
# 所有元素是唯一的
unique([1,1,3,4])
# 存在重复
想学习更多关于python的知识可以加我QQ:2955637827
Python:值得学习的二十个技巧的更多相关文章
- Python爬虫学习:二、爬虫的初步尝试
我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...
- Python Django 学习 (二) 【Django 模型】
注: 由于自己排版确实很难看,本文开始使用markdown编辑,希望有所改善 官方定义 A model is the single, definitive source of information ...
- python进阶学习(二)
本节学习图形用户界面 ------------------------ 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地 ...
- Python入门学习(二)
1 字典 1.1 字典的创建和访问 字典不同于前述的序列类型,它是一种映射类型.它的引入是为了简化定义索引值和元素值存在特定关系的定义和访问问题. 字典的定义形式为:字典变量名 = {key1:val ...
- Python基础学习(二)
前一段时间学习了Python数据类型,语句和函数,目前书写python的新特性,继续练手!!!! 一.切片 之前我们从python的list 或者 tuple中取得元素都是这样写,显然不够灵活 lis ...
- 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...
- webdriver(python)学习笔记二
自己开始一个脚本开始学习: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser. ...
- Python基础学习篇章二
一. Python如何运行程序 1. 在交互模式下编写代码 最简单的运行Python程序的方法是在Python交互命令行中输入程序.当然有很多方法可以开始这样的命令行,比如IDE,系统终端.如果你已经 ...
- python面向对象学习(二)基本语法
目录 1. dir内置函数 2. 定义简单的类(只包含方法) 2.1 定义只包含方法的类 2.2 创建对象 2.3 编写第一个面向对象程序 3. 方法中的self参数 3.1 案例改造 -- 给对象添 ...
随机推荐
- python中操作数据库
python中要操作数据库,要使用该数据库在python中对应的驱动库,本文介绍python操作mysql数据库 1.首先安装pymysql 2.导入库 3.建立连接 4.建立游标 5.发起请求 6. ...
- leetcode133. 克隆图
给定无向连通图中一个节点的引用,返回该图的深拷贝(克隆).图中的每个节点都包含它的值 val(Int) 和其邻居的列表(list[Node]).示例: 输入:{"$id":&quo ...
- PTA天梯赛校内模拟
最长对称子串 || 区间dp || 马拉车 dp[i][j]表示区间[i, j]是否为回文串,若是则为1,不是则为0. 边界条件: 1. 区间长度为1,dp为1.(奇数个字符递推的起始情况) 2. 区 ...
- python之切片操作,实现一个trim()函数,去除字符串首尾的空格.
# -*- coding: utf-8 -*- def trim(s): if len(s)==0: return '' if s[:1]==' ': return trim(s[1:]) elif ...
- kali putty远程连接允许以root身份登录
原文链接:https://blog.csdn.net/long_long_chuang/article/details/70227874 kali linux通过ssh+putty来实现远程登录(亲测 ...
- 安装spyder记录
sudo apt-get install spyder 报错:ERROR: Could not find a version that satisfies the requirement pyqt5& ...
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件概述和属性介绍
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 TabWidget选项卡组件是一个带一到多个选项卡栏和对应页面区域的组件,对应类QTabW ...
- hitorMiss、hitAndMiss以及MORPH_HITMISS?
hitorMiss.hitAndMiss在图像处理中都是同一个概念,即图像的形态学变换中的击中击不中变换,hit表示击中,miss表示击不中.MORPH_HITMISS是OpenCV调用时该变换的op ...
- Android10_原理机制系列_Window介绍及WMS的启动过程
简介 Window简介 Android中,Window是一个重要部分,用户看到的界面.触摸显示界面进行一系列操作都涉及到Window.但实际上,Window本身并不具备绘制功能. 该篇简单介绍下Win ...
- 对网页接口的追踪探索(以b站通过bv号查询av号为例
对网页接口的追踪探索(以b站通过bv号查询av号为例 序言 本文只提供一种探索网页加载时后端访问接口情况的思路,所举例子没有太大实际用处. 一 自2020年3月23日起,AV号将全面升级到BV号.但是 ...