30个神奇的Python技巧来编写更好的代码

开发 后端
使用Python技巧将您的逻辑转换为更优雅的代码。Python因其代码的简单性和可读性而成为一种非常流行的语言。 它是您选择的最简单的语言之一。 如果您是python基本概念的初学者,那么这是学习编写更好代码的最佳时间。

 使用Python技巧将您的逻辑转换为更优雅的代码

[[330982]]

Python因其代码的简单性和可读性而成为一种非常流行的语言。 它是您选择的最简单的语言之一。 如果您是python基本概念的初学者,那么这是学习编写更好代码的最佳时间。

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

技巧01-变量的多重分配

Python允许我们在一行中为多个变量分配值。 可以使用逗号分隔变量。 一线多任务有很多好处。 它可用于为多个变量分配多个值或为单个变量名称分配多个值。 让我们做一个问题陈述,其中我们必须将值50和60分配给变量a和b。 常规代码如下所示。

 

  1. a = 50  
  2. b = 60 
  3. print(a,b) 
  4. print(type(a)) 
  5. print(type(b)) 

输出量

 

  1. 50  
  2. 60  
  3. <class 'int' 
  4. <class 'int'

 

条件I-值等于变量

当变量和多个赋值相等时,每个值将存储在所有变量中。

 

  1. a , b = 50 , 60 
  2. print(a,b) 
  3. print(type(a)) 
  4. print(type(b)) 

输出量

  1. 50  
  2. 60 
  3. <class 'int'
  4. <class 'int'

这两个程序给出相同的结果。 这是使用一个行值分配的好处。

条件II-值大于变量

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

 

  1. a , *b = 50 , 60 , 70 
  2. print(a) 
  3. print(b) 
  4. print(type(a)) 
  5. print(type(b)) 

输出量

  1. 50 
  2. [60, 70] 
  3. <class 'int'
  4. <class 'list'

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

条件III-多变量一个值

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

 

  1. a = b = c = 50 
  2. print(a,b,c) 
  3. print(type(a)) 
  4. print(type(b)) 
  5. print(type(c)) 

输出量

  1. 50 50 50 
  2. <class 'int'
  3. <class 'int'
  4. <class 'int'

技巧02-交换两个变量

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

方法I-使用临时变量

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

 

  1. a , b = 50 , 60 
  2. print(a,b) 
  3. temp = a+b  
  4. #a=50 b=60 temp=110 
  5. b = a  
  6. #a=50 b=50 temp=110 
  7. a = temp-b  
  8. #a=60 b=50 temp=110 
  9. print("After swapping:",a,b) 

输出量

 

  1. 50 60 
  2.  
  3. After swapping: 60 50 

 

方法II-不使用临时变量

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

 

  1. a , b = 50 , 60 
  2. print(a,b) 
  3. a = a+b  
  4. #a=110 b=60 
  5. b = a-b  
  6. #a=110 b=50 
  7. a = a-b  
  8. #a=60 b=50 
  9. print("After swapping:",a,b) 

输出量

 

  1. 50 60 
  2.  
  3. After swapping: 60 50 

 

方法III-Python中的优秀解决方案

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

 

  1. a , b = 50 , 60 
  2. print(a,b) 
  3. a , b = b , a 
  4. print("After swapping",a,b) 

输出量

 

  1. 50 60 
  2.  
  3. After swapping 60 50 

 

技巧03-反转字符串

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

 

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

输出量

 

  1. GNIRTS YM 

技巧04-在一行中拆分单词

将单词分割成一行不需要特殊的算法。 为此,我们可以使用关键字split()。 在这里,我写了两种分割单词的方法。

方法一-使用迭代

 

  1. my_string = "This is a string in Python" 
  2. start = 0 
  3. end = 0 
  4. my_list = [] 
  5. for x in my_string:  
  6.     end=end+1  
  7.     if(x==' '):  
  8.     my_list.append(my_string[start:end])  
  9.     start=end+1 
  10.     my_list.append(my_string[start:end+1]) 
  11. print(my_list) 

输出量

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

方法II-使用分割功能

 

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

输出量

 

  1. ['This ''is ''a ''string ''in ''Python'

技巧05-将单词列表排成一行

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

语法:"" .join(string)

 

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

输出量

 

  1. This is a string in Python 

技巧06-多次打印字符串

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

 

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

输出量

 

  1. How many times you need to repeat:3 
  2.  
  3. PythonPythonPython 

 

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

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

 

  1. a = "I Love " 
  2. b = "Python" 
  3. print(a+b) 

输出量

 

  1. I Love Python 

技巧08-多个条件运算符

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

 

  1. a = 15 
  2. if (a>10 and a<20):  
  3.     print("Hi"

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

 

  1. a = 15 
  2. if (10 < a < 20):  
  3.     print("Hi"

输出量

 

  1. Hi 

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

在列表中大部分时间出现的元素,然后将成为列表中最频繁出现的元素。 以下代码段将帮助您从列表中获取最频繁的元素。

 

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

输出量

 

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

先前的代码将提供最频繁的值。 如果我们需要知道列表中所有唯一元素的出现,则可以使用收集模块。 该集合是python中一个很棒的模块,它提供了强大的功能。 Counter方法提供具有元素和出现对的字典。

 

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

输出量

 

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

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

如果一个字符串由另一字符串中的字符组成,则两个字符串是字谜。 我们可以在collections模块中使用相同的Counter方法。

 

  1. from collections import Counter 
  2. my_string_1 = "RACECAR" 
  3. my_string_2 = "CARRACE" 
  4.  
  5. if(Counter(my_string_1) == Counter(my_string_2)):  
  6.     print("Anagram"
  7. else: print("Not Anagram"

输出量

 

  1. Anagram 

技巧12-创建带范围的数字序列

函数range()对于创建数字序列很有用。 在许多代码片段中,它可能很有用。 范围函数的语法在此处编写。

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

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

 

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

输出量

 

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

技巧13-多次重复元素

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

 

  1. my_list = [3] 
  2. my_list = my_list*5 
  3. print(my_list) 

输出量

 

  1. [3, 3, 3, 3, 3] 

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

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

语法:if True then Statement1 else Statement2

 

  1. if age > 20 then age = 25, print("czz"else print("不合格") 

输出量

 

  1. 合格 

技巧15-使用Python列表推导表达式

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

 

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

输出量

 

  1. [1, 4, 9, 16, 25, 36, 49, 64, 81] 

使用列表推导表达式

 

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

输出量

 

  1. [1, 4, 9, 16, 25, 36, 49, 64, 81] 

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

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

 

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

输出量

 

  1. 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函数返回的整数大于浮点数。 要使用此功能,我们必须导入数学模块。

 

  1. import math 
  2. my_number = 18.7 
  3. print(math.floor(my_number)) 
  4. print(math.ceil(my_number)) 

输出量

 

  1. 1819 

技巧18-返回布尔值

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

方法I-使用其他条件

 

  1. def function(n):  
  2.     if(n>10):  
  3.     return True  
  4.     elsereturn False 
  5.  
  6. n = int(input()) 
  7. if(function(n)):  
  8.    print("Eligible"
  9. else:  
  10.     print("Not Eligible"

方法II-无其他条件

 

  1. def function(n):  
  2.     return n>10 
  3.  
  4. n = int(input()) 
  5.  
  6. print("Eligible") if function(n) else print("Not Eligible"

输出量

 

  1. Eligible 

技巧19-一行创建函数

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

语法:lambda 参数:表达式

 

  1. x = lambda a,b,c : a+b+c 
  2. print(x(10,20,30)) 

输出量

 

  1. 60 

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

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

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

 

  1. my_list = ["felix""antony"
  2. new_list = map(str.capitalize,my_list) 
  3. print(list(new_list)) 

输出量

 

  1. ['Felix''Antony'

技巧21-将Lambda与map功能配合使用

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

 

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

输出量

 

  1. [1, 4, 9, 16, 25] 

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

python函数可以返回多个值,而无需任何额外的需要。 我们可以通过用逗号分隔它们来返回值。

 

  1. def function(n):  
  2.     return 1,2,3,4 
  3.  
  4. a,b,c,d = function(5) 
  5. print(a,b,c,d) 

输出量

 

  1. 1 2 3 4 

技巧23-使用filter函数过滤值

filter函数用于过滤可迭代对象中的某些值。 filter函数的语法如下。

语法:filter(函数,迭代)

 

  1. def eligibility(age):  
  2.     return age>=24 
  3.  
  4. list_of_age = [10, 24, 27, 33, 30, 18, 17, 21, 26, 25] 
  5. age = filter(eligibility, list_of_age) 
  6. print(list(age)) 

输出量

 

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

技巧24-用Python合并两个字典

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

 

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

输出量

 

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

技巧25-获取对象的大小

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

 

  1. import sys 
  2. a = 5 
  3. print(sys.getsizeof(a)) 

输出量

 

  1. 28 

窍门26-将两个列表组合成字典

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

 

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

输出量

 

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

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

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

 

  1. import time 
  2. start = time.clock() 
  3. for x in range(1000):  
  4.   pass 
  5. end = time.clock() 
  6. total = end - start 
  7. print(total) 

输出量

 

  1. 0.00011900000000000105 

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

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

 

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

输出量

 

  1. [8, 1, 2, 4, 5] 

技巧29-用python打印月历

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

 

  1. import calendar 
  2. print(calendar.month("2020","06")) 

输出量

 

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

技巧30-使用zip功能进行迭代

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

 

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

输出量

 

  1. a 1b 2c 3 

总结思想

希望您喜欢这篇文章。 最后,您必须了解学习技巧不是必须的。 但是,如果这样做,您将在其他程序员中独树一帜。 必须持续练习才能流利地编码。 感谢您阅读本文。 您可以在中等水平上关注我。

编码愉快!

 

责任编辑:华轩 来源: 今日头条
相关推荐

2020-06-23 07:48:18

Python开发技术

2020-05-08 19:52:31

Reactreact.js前端

2017-08-30 19:32:08

代码程序员编程

2020-08-06 00:25:38

Python代码开发

2017-08-30 11:10:25

代码

2020-06-08 07:52:31

Python开发工具

2021-02-23 10:48:30

Python代码开发

2020-08-06 16:34:48

Python开发工具

2014-07-29 13:55:10

程序员代码

2021-03-17 08:00:59

JS语言Javascript

2016-12-13 10:06:25

编写Java单元测试技巧

2023-03-27 15:05:10

Python技巧

2017-09-14 12:45:35

2023-10-10 08:00:00

2014-04-21 10:14:52

PromisesJavaScript

2022-07-20 08:21:00

Java代码优化

2023-10-07 14:37:10

Java开发

2012-04-27 16:54:57

Java代码

2022-08-28 19:03:18

JavaScript编程语言开发

2023-07-30 17:10:32

TypeScript开发
点赞
收藏

51CTO技术栈公众号