据说掌握这30个Python编程技巧,效率提升10倍!

文章摘录自 <Python成为专业人士笔记>

Python因其代码的简单性和可读性而成为一种非常流行的语言。它是你入门编程的最简单的语言之一。如果你是python基本概念的初学者,那么这个时候正是养成优雅的python编写风格的最佳时机

python中有许多技巧可以比以前更好地改善程序。本文将帮助你了解python中可用的各种技巧。不断地练习它们,直到它成为你的编程习惯的一部分。

技巧01-变量的多重分配

Python允许我们在一行中为多个变量分配值。可以使用逗号分隔变量。一行命令同时分配多变量有很多好处。它可用于为多个变量分配多个值或为多个值分配给单个变量。让我们做假设一个场景,其中我们必须将值50和60分配给变量a和b。常规代码如下所示。

        a = 50 
b = 60
print(a,b)
print(type(a))
print(type(b)) 
      

输出

        50 60 
<class 'int'> 
<class 'int'>
      

场景1-赋值数量等于变量

当变量和多个赋值一一对应时,每个值将对应存储在对应位置的变量中。

        a,b = 50,60 
print(a,b)
print(type(a))
print(type(b))
      

输出量

        50 60 
<class 'int'> 
<class 'int'>
      

这两个程序给出相同的结果,代码更加高效、简洁

场景2-赋值数量大于变量

让我们尝试增加赋值的数量。可以将多个值分配给单个变量。在为变量分配多个值时,我们必须在变量名称前使用星号。

        a,* b = 50,60,70 
print(a)
print(b)
print(type(a))
print(type(b))
      

输出量

        50 
[60,70] 
<class'int'> 
<class'list'>
      

第一个值将分配给第一个变量。第二个变量将从给定值中收集值。这将创建一个list列表类型对象。

场景3-多个变量赋同一个值

我们可以为多个变量分配一个值。每个变量将使用等号分隔。

        a = b = c = 50 
print(a,b,c)
print(type(a))
print(type(b))
print(type(c))
      

输出量

        50 50 50 
<class'int'> 
<class'int'> 
<class'int'>
      

技巧02-交换两个变量

交换是彼此交换两个变量的值的过程。这在计算机科学的许多操作中可能很有用。在这里,我编写了两种主要的方法供程序员用来交换值以及最佳解决方案。

方法I-使用临时变量

此方法使用临时变量存储一些数据。以下代码使用临时变量名编写。

        a,b = 50,60 
print(a,b)
temp = a + b #a = 50 b = 60 temp = 110 
b = a #a = 50 b = 50 temp = 110 
a = temp-b #a = 60 b = 50 temp = 110 
print(“交换后:”,a,b)
      

输出量

        50 60 
交换后:60 50
      

方法II-不使用临时变量

以下代码在不使用临时变量的情况下交换了变量。

        a,b = 50,60 
print(a,b)
a = a + b #a = 110 b = 60 
b = a-b #a = 110 b = 50 
a = a-b #a = 60 b = 50 
print("交换后",a,b)
      

输出量

        50 60 
交换后:60 50
      

方法III-Python中的最佳解决方案

这是使用python交换变量的另一种方法。在上一节中,我们了解了变量多重分析。我们可以使用交换的概念。

        a,b = 50,60 
a,b=b,a
print("交换后",a,b)
      

输出

        50 60 
交换后 60 50
是不是很神奇?
      

技巧03-反转字符串

还有另一个很酷的技巧可以在python中反转字符串。用于反转字符串的概念称为字符串切片。可以在变量名称后使用符号[::-1]反转任何字符串。

        my_string ="MY STRING" 
rev_string = my_string [::-1] 
print(rev_string)
      

输出

        GNIRTS YM
      

技巧04-在字符串中拆分单词

将字符串拆分成单词不需复杂的算法。为此,我们可以使用 split() 关键字。在这里,我写了两种分割单词的方法。

方法一-使用迭代

        my_string = "This is a string in Python"
start = 0
end = 0
my_list = []

for x in my_string:
    end=end+1
    if(x==' '):
        my_list.append(my_string[start:end])
        start=end+1
my_list.append(my_string[start:end+1])
print(my_list) 
      

输出

        ['This','is','a','string','in','Python']
      

方法II-使用分割函数

        my_string = "This is a string in Python"
my_list = my_string.split(' ')
print(my_list) 
      

输出

        ['This','is','a','string','in','Python']
      

技巧05-将单词拼成字符串

这与上一个过程相反。在这一部分中,我们将使用join函数将单词列表转换为字符串。下面给出了使用join函数的语法。

语法: “” .join(string)

        my_list = ['This' , 'is' , 'a' , 'string' , 'in' , 'Python']
my_string = " ".join(my_list) 
      

输出

         This is a string in Python 
      

技巧06-多次打印字符串

我们可以使用乘法运算符多次打印字符串。这是重复打印字符串的非常有效的方法。

        n = int(input("How many times you need to repeat:"))
my_string = "Python\n"
print(my_string*n) 
      

输出

         How many times you need to repeat: 3 
Python 
Python 
Python
      

技巧07-使用加法运算符连接两个字符串

可以在不使用join函数的情况下连接各种字符串。我们可以只使用加法运算符(+)来执行此操作。

        a ="我爱" 
b ="Python" 
print(a + b)
      

输出量

        我爱Python
      

技巧08-多个条件运算符

可以在程序中结合使用两个或多个条件运算符,我们可以使用逻辑运算符。但是,通过链接运算符可以获得相同的结果。例如,如果我们需要在变量的值大于10且小于20时打印某些内容,则代码将类似于以下:

        a = 15
if (a>10 and a<20):
    print("Hi") 
      

取而代之的是,我们可以将条件运算符组合为单个表达式。

        a = 15
if (10 < a < 20):
    print("Hi") 
      

输出

        Hi
      

在以下文章中了解有关运算符的更多信息。Python入门指南从大自然中学习Python的指南Medium.com

技巧09-在列表中查找出现最频繁的元素

以下代码段将帮助你从列表中获取出现最频繁的元素。

        my_list = [1,2,3,1,1,4,2,1]
most_frequent = max(set(
my_list
),key=
my_list
.count)

print(most_frequent) 
      

输出

        1
      

技巧10-查找列表中所有元素的出现次数

先前的代码将提供最频繁的值。如果我们需要知道列表中所有唯一元素的出现交数,那么我们可以使用collection模块。它是python中一个很棒的模块,具有强大的功能。该Counter方法给出一个包含元素和出现次数的字典。

        from collections import Counter
my_list = [1,2,3,1,4,1,5,5]
print(Counter(my_list))

 
      

输出

         Counter({1: 3, 5: 2, 2: 1, 3: 1, 4: 1}) 
      

技巧11-检查两个字符串的变位符

如果一个字符串由另一字符串中的字符组成,仅仅是顺序不同,则两个字符串是变位符关系。我们可以在collections模块中使用相同的Counter方法。

        from collections import Counter
my_string_1 = "RACECAR"
my_string_2 = "CARRACE"

if(Counter(my_string_1) == Counter(my_string_2)):
    print("Anagram")
else:
    print("Not Anagram") 
      

输出

         Anagram 
      

技巧12-使用范围创建数字序列

函数range()对于创建数字序列很有用。范围函数的语法在此处编写:

语法: range(开始,结束,步长)

让我们尝试创建一个偶数列表。

        my_list = list(range(2,20,2))
print(my_list) 
      

输出

        [2,4,6,8,10,12,14,16,18]
      

技巧13-多次重复元素

与字符串乘法相似,我们可以使用乘法运算符创建一个多次填充元素的列表。

        my_list = [3] 
my_list = my_list * 5 
print(my_list)
      

输出

        [3,3,3,3,3]
      

技巧14-在三元运算符中使用条件

在大多数情况下,我们在Python中使用嵌套的条件结构。除了使用嵌套结构,还可以在三元运算符的帮助下替换一行,其语法如下:

语法:如果为True,则为 Statement1 ,否则为 Statement2

age = 25

print(“Eligible”) if age>20 else print(“Not Eligible”)

输出

         Eligible 
      

技巧15-Python列表生成式

列表生成式是从另一个列表创建列表的一种非常紧凑的方法。看下面的代码。第一个是使用简单的迭代编写的,第二个是使用列表生成式的。

        square_list = []
for x in range(1,10):
    temp = x**2
    square_list.append(temp)
print(square_list) 
      

输出

        [1、4、9、16、25、36、49、64、81]
      

使用列表生成式

        square_list = [x**2 for x in range(1,10)]
print(square_list) 
      

输出

        [1、4、9、16、25、36、49、64、81]
      

技巧16-将可变项转换为不可变项

函数frozenset()用于将可变的可迭代对象转换为不可变对象。使用此方法,我们可以冻结对象的值更改。

        my_list = [1,2,3,4,5]
my_list = frozenset(my_list)
my_list[3]=7
print(my_list) 
      

输出

         Traceback (most recent call last):
  File "<string>", line 3, in <module>
TypeError: 'frozenset' object does not support item assignment 
      

当我们将frozenset()函数应用于列表时,更改值受到限制。

技巧17-用 Floor 和Ceil 四舍五入

Floor和Ceil是数学函数,可用于浮点数。floor函数返回的整数小于浮点数,而ceil函数返回的整数大于浮点数。要使用此功能,我们必须导入数学模块。

        import math
my_number = 18.7
print(math.floor(my_number))
print(math.ceil(my_number)) 
      

输出

        18 
19
      

技巧18-返回布尔值

有时我们必须通过检查某些参数的条件来返回布尔值。代替编写if语句,我们可以直接返回条件。以下程序将产生相同的输出。

方法I-使用 If Else 条件

        def function(n):
    if(n>10):
        return True
    else:
        return False
n = int(input())
if(function(n)):
    print("Eligible")
else:
    print("Not Eligible") 
      

方法II-不使用 If Else

        def function(n):
    return n>10n = int(input())
print("Eligible") if function(n) else print("Not Eligible") 
      

输出

        11
Eligible 
      

技巧19-一行创建函数

Lambda是python中的匿名函数,可在一行中创建函数。这里给出了使用lambda函数的语法。

语法: lambda参数:表达式

        x = lambda a,b,c : a+b+c  #传入3个参数,功能是将3个参数相加
print(x(10,20,30)) 
      

输出

        60
      

技巧20-将函数应用于列表中的所有元素

Map是一个高阶函数,它对列表中的所有元素应用特定的函数功能。

语法:map(函数,可迭代)

        my_list = ["felix", "antony"]
new_list = map(str.capitalize,my_list)  # capitalize 函数将单词首字母大写
print(list(new_list)) 
      

输出量

        ['Felix','Antony']
      

技巧21-Lambda与Map配合使用

该函数可以用python中的lambda函数替换。创建以下程序以创建数字列表的平方。

        my_list = [1, 2, 3, 4, 5]
new_list = map(lambda x: x*x, my_list)
print(list(new_list)) 
      

输出量

        [1、4、9、16、25]
      

在此处了解有关高阶函数的更多信息。Python中的进阶功能概念是时候学习高级功能了,例如地图,过滤器等等Medium.com

技巧22-从函数返回多个值

python函数可以返回多个值,而无需任何额外的代码:

        def function(n):
    return 1,2,3,4

a,b,c,d = function(5)
print(a,b,c,d) 
      

输出

        1 2 3 4
      

技巧23-使用filter过滤值

过滤器功能用于过滤可迭代对象中的某些值。过滤功能的语法如下。

语法: filter(函数,迭代)

        def eligibility(age):
    return age>=24

list_of_age = [10, 24, 27, 33, 30, 18, 17, 21, 26, 25]
age = filter(eligibility, list_of_age)

print(list(age)) 
      

输出量

        [24,27,33,30,26,25]
      

技巧24-在Python中合并两个字典

在python中,我们可以合并两个字典,而无需任何复杂的方法。下面的代码是合并两个字典的示例。

        dict_1 = {'One':1, 'Two':2}
dict_2 = {'Two':2, 'Three':3}
dictionary = {**dict_1, **dict_2}
print(dictionary) 
      

输出

        {'One': 1, 'Two': 2, 'Three': 3} 
      

技巧25-获取对象的大小

内存大小根据对象的类型而变化。我们可以使用sys模块中的getsizeof()函数获取对象的内存。

        import sys
a = 5
print(sys.getsizeof(a)) 
      

输出

        28
      

技巧26-将两个列表组合成字典

zip 函数在python中有很多优点。使用zip函数,我们可以从两个列表创建字典。

        list_1 = ["One","Two","Three"]
list_2 = [1,2,3]
dictionary = dict(zip(list_1, list_2))
print(dictionary) 
      

输出

         {'Two': 2, 'One': 1, 'Three': 3} 
      

技巧27-计算程序的执行时间

Time 是python中另一个有用的模块,可用于计算执行时间。

        import time
start = time.clock()
for x in range(1000):
    pass
end = time.clock()
total = end - start
print(total) 
      

输出

        0.00011900000000000105
      

技巧28-删除列表中的重复元素

出现多次的元素称为重复元素。我们可以使用类型转换简单地删除重复的元素。

        my_list = [1,4,1,8,2,8,4,5]
my_list = list(set(my_list))
print(my_list) 
      

输出量

         [8, 1, 2, 4, 5] 
      

技巧29-用python打印月历

日历模块具有许多与基于日期的操作有关的功能。我们可以使用以下代码打印每月日历。

        import calendar
calendar.month(2020,6)
      

输出

             2020年6月
Mo Tu We Th Fr Sa Su 
1 2 3 4 5 6 7 
8 9 10 11 12 13 14 
15 16 17 18 19 20 21 
22 23 23 25 25 27 27 
29 29 30
      

技巧30-使用zip函数进行迭代

zip函数允许使用循环迭代多个可迭代的过程。在下面的代码中,两个列表同时被迭代。

        list_1 = ['a','b','c']
list_2 = [1,2,3]
for x,y in zip(list_1, list_2):
    print(x,y) 
      

输出量

        a 1 
b 2 
c 3
      

总结

希望你喜欢这篇文章,你必须了解学习这些技巧不是必须的。但是,如果这样做,你将在其他程序员中独树一帜。必须持续练习才能流利地编码,欢迎使用免费的JupyterNote在线云环境随时练习

感谢 Felix Antony提供的帮助

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值