溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python實用的快捷語法技巧有哪些

發(fā)布時間:2022-02-25 11:29:45 來源:億速云 閱讀:142 作者:iii 欄目:開發(fā)技術

本篇內(nèi)容主要講解“python實用的快捷語法技巧有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python實用的快捷語法技巧有哪些”吧!

前言

你知道a**3是什么意思嗎?

你知道怎么打印模塊路徑嗎?

你知道reduce()函數(shù)怎么用和列表怎么拼接字符串嗎?

然而你可能全都知道

但是還是往下看看吧,可能會有你不知道的python小技巧學會它讓你的效率提升不止一倍!??!

in判斷

可以直接用來判斷某個變量是否在列表中

我們可以使用下面的方式來驗證多個值:

if 7 in [1,3,5,7,9]:
  print("肥學")
答案:
肥學

就不用再用:

if m==1 or m==3 or m==5 or m==7:

四種翻轉字符串/列表的方式

翻轉列表本身
testList = [1, 3, 5]
testList.reverse()
print(testList)
#-> [5, 3, 1]
 在一個循環(huán)中翻轉并迭代輸出
 for element in reversed([1,3,5]):
    print(element)


#1-> 5

#2-> 3

#3-> 1
一行代碼翻轉字符串
"Test Python"[::-1]

#輸出 “nohtyP tseT”
更多例子:
>>> a=[1,2,3,4,5,6,7]
>>> b=(1,2,3,4,5,6,7)
>>> c='Let me show you a little thing'
>>> a[::-1]
[7, 6, 5, 4, 3, 2, 1]
>>> b[::-1]
(7, 6, 5, 4, 3, 2, 1)
>>> c[::-1]
'gniht elttil a uoy wohs em teL'
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> b
(1, 2, 3, 4, 5, 6, 7)
>>> c
'Let me show you a little thing'

>>> a.reverse()
>>> a
[7, 6, 5, 4, 3, 2, 1]

相對reverse而言,切片的方法不會改變列表的結構,所以這是在實際應用中比較有用的一個技巧
使用切片翻轉列表

[1, 3, 5][::-1]

#輸出 [5,3,1]

平方數(shù)

a=5
a**2=25
a**3=125

進制轉換

dec = input('10進制數(shù)為:')
print("轉換為二進制為:", bin(dec))
print("轉換為八進制為:", oct(dec))
print("轉換為十六進制為:", hex(dec))
 
string1 = '101010'
print('二進制字符串轉換成十進制數(shù)為:',int(string1,2))
string1 = '367'
print('八進制字符串轉換成十進制數(shù)為:',int(string1,8))
string3 = 'FFF'
print('十六進制字符串轉換成十進制數(shù)為:',int(string1,16))

將字符串中的小寫字母轉為大寫字母

str = "this is string example from runoob....wow!!!";

print ("str.upper() : ", str.upper())
以上實例輸出結果如下:

str.upper() :  THIS IS STRING EXAMPLE FROM RUNOOB....WOW!!!

一次性初始化多個變量

a,b,c,d=1,2,3,4
可以利用列表

List = [1,2,3]
x,y,z=List
print(x, y, z)
#-> 1 2 3

打印模塊路徑

import socket
print(socket)
#<module 'socket' from '/usr/lib/python2.7/socket.py'>

列表去重

list0 = [1, 2, 3, 2, 2, 5, 6, 5]
list0 = list(set(list0))
>>> list0
[1, 2, 3, 5, 6]

字典和列表推導

#列表
l=[[0 for i in range(4)] for i in range(4)]#生成二維列表
print(l)
#  [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
#字典推導
testDict = {i: i * i for i in xrange(10)}
testSet = {i * 2 for i in xrange(10)}

print(testSet)
print(testDict)

#set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
#{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

拼接字符串

你可能見過這個拼接方法
a="i "
b="love "
c="you"
print(a+b+c)
看看這個
l=['a','b','c']
print(''join(l))
#以join左邊的字符做分割

循環(huán)枚舉索引

很方便的找到下標和對應元素
list = [10, 20, 30]
for i, value in enumerate(list):
    print(i, ': ', value)

#1-> 0 : 10
#2-> 1 : 20
#3-> 2 : 30

開啟文件分享

Python 允許運行一個 HTTP 服務器來從根路徑共享文件,命令會在默認端口也就是 8000 開啟一個服務器,你可以將一個自定義的端口號以最后一個參數(shù)的方式傳遞到上面的命令中。下面是開啟服務器的命令

python3 -m http.server

巧用else語句(重要)

python的else 子句不僅能在 if 語句中使用,還能在 for、while 和 try 等語句中使用,這個語言特性不是什么秘密,但卻沒有得到重視。

l=[1,2,3,4,5]
for i in l:
    if i=='6':
        print(666)
        break
else:
    print(999)

split

Python split() 通過指定分隔符對字符串進行切片,如果參數(shù) num 有指定值,則僅分隔 num 個子字符串。

語法:

str.split(str="", num=string.count(str))

簡化:

str.split("")

reduce

reduce把一個函數(shù)作用在一個序列[x1, x2, x3, ...]上,這個函數(shù)必須接收兩個參數(shù),reduce把結果繼續(xù)和序列的下一個元素做累積計算

簡單例子:

>>> from functools import reduce
>>> def fn(x, y):
        return x * 10 + y

>>> reduce(fn, [1, 3, 5, 7, 9])
13579

我們把最近的知識結合起來做一道題

輸入一個int型整數(shù),按照從右向左的閱讀順序,返回一個不含重復數(shù)字的新的整數(shù)。

result=""
for i in input()[::-1]:
    if i not in result:
        result+=i
print(result)

sorted

>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
#可以接收一個key函數(shù)來實現(xiàn)自定義的排序,例如按絕對值大小排序:
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]

我們再看一個字符串排序的例子:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'])
['Credit', 'Zoo', 'about', 'bob']

我們給sorted傳入key函數(shù),即可實現(xiàn)忽略大小寫的排序:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']

要進行反向排序,不必改動key函數(shù),可以傳入第三個參數(shù)reverse=True:

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']

執(zhí)行一個字符串表達式,并返回表達式的值

>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

到此,相信大家對“python實用的快捷語法技巧有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI