5种非常棒的 Python 技巧,使你的代码更优雅
Python 是全世界程序员使用最广泛的语言之一。它可用应用于机器学习、深度学习和数据科学的各种项目。语法简洁也使得它成为 Python 初学者的首选语言。
今天教大家一些 Python 技巧,它可以使你的代码更优雅和高效。
列表
只需一行代码,让你的代码看起来更简洁,并且看起来更专业。
a = [2,5,7,9]
b = []
for i in range(len(a)):
b.append(a[i]+1)
这是正常的 code 方式,现在让它更加简洁、专业一点。
a = [2,5,7,9]
b = [a[i]+1 for i in range(len(a))]
你可以看到代码之间的差别。现在这只是一个简单的例子,后续你会发现有更多的应用案例,并可以大幅帮你减少代码长度。
反转字符串
让我们编写一些代码来反转字符串。
def reverse_string(string):
result=""
for c in range(len(string),-1,-1):
result = result + string[c]
return result
看起来有点乱吧, 用另一种方式来表达:
def reverse_string(string):
result = [ string[c] for c in range(len(string),-1,-1)]
return "".join(result)
看起来不错吧,其实使用切片的方法可以更好,方法如下:
def reverse_string(string):
return string[::-1]
将数字与数字进行求和
将数字与数字进行求和,这是一个非常简单的问题,
首先,我们可以用传统方法解决这个问题:
def sum_a_num(num):
sum = 0
while num > 0:
sum+= num%10
num//=10
return sum
这是可以的,但在紧张的情况下,最终可能会与运算符发生拼写错误或错误,最终得到错误的结果,并花费数小时尝试调试代码。
因此,要避免这种情况,有一个更好的方法做到这一点。
def sum_a_num(num):
return sum(list(map(int,str(num))))
现在上述代码所做的是:
将 num 转换为字符串; map() 函数在字符串上遍数,并将每个字符转换为整数; list() 函数将映射对象转换为列表,然后求和;
num = 2367
str(num) = '2367'
list(map(int,str(num))) = [2,3,6,7]
sum(list(map(int(str(num)))) = 18
交换两个数字
现在,这是一件非常简单的事情。
x = 10
y = 15
x = x + y
y = x - y
x = x - y
但是,让我们在一行代码中做到这一点
x = 10
y = 15
x,y = y,x
这样更好。不是吗?
列表或字符串中最常见的元素
有多种方法可以实现此需求,我们可以使用循环以简单的方式做到这一点。下面我分享两种更高效的方法:
l = [1,2,1,4,6,2,7,8,2,2]
print(max(l,key = l.count))
或者
my_string = "python_is_great"
print(sorted(my_string,key = my_string.count)[0])
福利时间
大家好,最后给大家免费分享 Python 三件套:《ThinkPython》、《简明Python教程》、《Python进阶》的PDF电子版。如果你是刚入门的小白,不用想了,这是最好的学习教材。
现在免费分享出来,有需要的读者可以下载学习,在下面的公众号里回复关键字:三件套,就行。
领取方式:
长按扫码,发消息 [三件套]
评论