本文为大家介绍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:值得学习的二十个技巧的更多相关文章

  1. Python爬虫学习:二、爬虫的初步尝试

    我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...

  2. Python Django 学习 (二) 【Django 模型】

    注: 由于自己排版确实很难看,本文开始使用markdown编辑,希望有所改善 官方定义 A model is the single, definitive source of information ...

  3. python进阶学习(二)

    本节学习图形用户界面 ------------------------ 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地 ...

  4. Python入门学习(二)

    1 字典 1.1 字典的创建和访问 字典不同于前述的序列类型,它是一种映射类型.它的引入是为了简化定义索引值和元素值存在特定关系的定义和访问问题. 字典的定义形式为:字典变量名 = {key1:val ...

  5. Python基础学习(二)

    前一段时间学习了Python数据类型,语句和函数,目前书写python的新特性,继续练手!!!! 一.切片 之前我们从python的list 或者 tuple中取得元素都是这样写,显然不够灵活 lis ...

  6. 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性

    本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...

  7. webdriver(python)学习笔记二

    自己开始一个脚本开始学习: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser. ...

  8. Python基础学习篇章二

    一. Python如何运行程序 1. 在交互模式下编写代码 最简单的运行Python程序的方法是在Python交互命令行中输入程序.当然有很多方法可以开始这样的命令行,比如IDE,系统终端.如果你已经 ...

  9. python面向对象学习(二)基本语法

    目录 1. dir内置函数 2. 定义简单的类(只包含方法) 2.1 定义只包含方法的类 2.2 创建对象 2.3 编写第一个面向对象程序 3. 方法中的self参数 3.1 案例改造 -- 给对象添 ...

随机推荐

  1. Jmeter(二十九) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy2(详解教程)

    1.简介 上一篇文中已经对Badboy做了一个基本上详细完整的介绍,这一篇宏哥带你们实战一下,这一篇主要讲解和分享:录制和运行脚本.参数化 首先让我们使用N模式录制一个脚本,测试用例编号为:1.1.1 ...

  2. flink:StreamExecutionEnvironment、DataStream和Transformation与StreamOperator

    1.StreamExecutionEnvironment: StreamExecutionEnvironment是构建执行任务环境以及任务的启动的入口,主要具备以下几方面的职责: a.存储全局相关的参 ...

  3. python 子进程

    1.线程的介绍(理论部分) 1.1 进程线程分工 我们之前讲运行一个py文件,就是开启了一个进程,在内存中开辟一个进程空间,将必要的数据加载到这个进程空间,然后cpu在去调用这个进程的主线程去执行具体 ...

  4. mySQL初学者需要掌握的【数据库与表的基本操作】

    本内容会持续更新的哦! 注:"字段"="列","记录''="行" 文章目录 一:数据库的基本操作 二.数据表的基本操作 1.创建与 ...

  5. 手把手教你使用Rollup打包📦并发布自己的工具库🔧

    DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师. 官方网站:devui.design Ng组件库:ng-devui(欢 ...

  6. npm常用操作

    Npm常用操作 1. 淘宝镜像 1.1 npm临时使用淘宝镜像安装依赖包 npm i -g express --registry https://registry.npm.taobao.org 1.2 ...

  7. 关于老猿Python系列文章发布网址变化的说明

    老猿Python系列文章最开始在新浪发布,后逐渐开通了CSDN.博客园和简书三个网址,但老猿一来工作忙,二来Python需要学习的内容太多,因此实在没时间同时维护这么多博客,事实上除了CSDN其他网站 ...

  8. Python中的列表解析和列表推导是一回事吗?

    列表解析和列表推导就是一个意思,只是从英文"list comprehension"翻译过来的不同翻译方法. 列表解析就是通过解析表达式从一个可迭代对象生成一个新的列表的Python ...

  9. HTTP请求头和响应头详解【转】

    最近老猿在开始学习爬虫相关的知识,由于老猿以前只做非web的后台应用,发现相关知识太过匮乏,导致学习很困难,为此不得不从一些基础知识恶补开始,对于这些知识,老猿会将网上找到的比较认可的内容直接转发. ...

  10. PyQt(Python+Qt)学习随笔:QTreeView树形视图的autoExpandDelay属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的autoExpandDelay属性用于控制在视图中拖拽时,当鼠标停留在一 ...