Python 中甜甜的語法糖

本文分三部分講述 python 中常用的語法糖,爲什麼分三部分,因爲考慮到大家可能對 python 中的一些特有的數據結構不太熟悉,所以首先介紹;文章的最後將會介紹一些經典的函數語法糖。

首先解釋一下語法糖是什麼意思,其實就是簡化我們的代碼,讓那些複雜的操作交給解釋器來完成,這些語法糖剛開始學的時候覺得很難記住,如果看別人寫的語法糖更容易蒙圈,還會嘀咕別人裝什麼裝,但是一旦自己掌握,嘖嘖嘖,一發不可收拾,可謂真香。

語法糖(Syntactic sugar):

  • 計算機語言中特殊的某種語法
  • 這種語法對語言的功能並沒有影響
  • 對於程序員有更好的易用性
  • 能夠增加程序的可讀性
  • 簡而言之,語法糖就是程序語言中提供[]的一種手段和方式而已。 通過這類方式編寫出來的代碼,即好看又好用,好似糖一般的語法。固美其名曰:語法糖

一、數據結構

這裏主要介紹常用語語法糖的數據結構,熟悉的小夥伴可以跳過。

序列類型

在序列中元素類型可以不同,通過下標訪問元素。

字符串類型、列表類型、元組類型都屬於序列。
在這裏插入圖片描述
序列類型是雙向索引,如上圖所示。

序列類型常用的操作:
在這裏插入圖片描述
序列類型的函數與方法:
在這裏插入圖片描述
下面介紹元組類型

元組類型是序列類型的一種擴展,但是元組一旦創建就不能修改,元組使用 ()或者tuple()創建。

接下來是列表類型,列表類型可謂是最常用的一種數據結構,該序列創建之後可以隨意修改,使用[]或者list()創建,列表類型特有的函數和方法如下:

在這裏插入圖片描述
值得一提的是列表中使用 [::-1] 表示反轉字符串。

集合類型

集合是多個元素的無序組合,特點是元素不重複。創建使用 {} 或者 set() ;

在這裏插入圖片描述
集合操作符:
在這裏插入圖片描述
集合中常用的方法與函數:
在這裏插入圖片描述

字典類型

字典類型相當於 java 中的 Map ,即映射關係類型的數據結構:

使用{}dict()創建,使用冒號:表示鍵值關係。
在這裏插入圖片描述

二、語法糖

先說一個實用的技巧,就是字符串類型和列表類型互相轉換的幾種方法:

  • 首先是字符串類型到列表類型,使用list() 或者split()
  • 然後是列表轉字符串:如果列表元素都爲字符串可以使用"".join(ls),如果不全是則使用map(str,ls)然後再join
//交換數字
a, b = b, a
//表示從b和c取一個較大的值賦值給a
a = [b, c][c > b]
// 我們希望把正的放前面,負的放後面,並且分別按絕對值從小到大
lst = [1, -2, 10, -12, -4, -5, 9, 2]
// 這樣即可
lst.sort(key=lambda x: (x < 0, abs(x)))
// Lambda 表達式
f=lambda x:x+1
// 

關於列表的列表推導式:

// 生成奇數序列
l=[2*x+1 for x in range(10)]

for 的嵌套

[(x,y) for x in range(3) for y in range(3)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

還可以使用 if 語句:

new_list = [expression(i) for i in old_list if condition(i)]

不過可讀性極差,讓別人來閱讀你的代碼是很痛苦的一件事。

三、函數語法

三大函數,很有用:

filter,map,reduce

首先是 filter 函數,filter 函數接受兩個參數,第一個是過濾函數,第二個是可遍歷的對象,用於選擇出所有滿足過濾條件的元素,返回一個可迭代對象。

// 去除小寫字母
s=filter(lambda x:not str(x).islower(),"asdasfAsfBsdfC")

map函數接受的參數類型與filter類似,它用於把函數作用於可遍歷對象的每一個元素。類似於數學中映射的概念。

// 求y=2x+1
s=map(lambda x:2*x+1,range(6))

reduce 函數對每個元素作累計操作,它接受的第一個參數必須是有兩個參數的函數。

// 求和
from functools import reduce
s=reduce(lambda x,y:x+y,range(1,6))

元組拆包:

t=(1,2,3)
x,y,z=t

當然還有很多語法糖,歡迎留言補充。

參考鏈接:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章