python 藝術作品 Python收藏藝術

2021-10-11 17:32:16 字數 3772 閱讀 8642

python collections中收藏了什麼呢?嗯,是藝術,一種高效能資料型別藝術!

python的最大優勢之一是其廣泛的模組和軟體包支援。它們將python的功能擴充套件到了很多流行領域,包括機器學習,資料科學,web開發,前端等。其中python內建的collections 就是最好的模組之一。

一般而言,python中的collections是用於儲存資料集合(例如列表,字典,元組和集合)的容器。這些容器內建在python中,可以直接使用。

讓我們看一看有關collections模組最受歡迎的資料型別以及如何使用

(1) counter

counter是字典物件的子類。collections模組中的counter()函式引數是乙個可迭代的變數(iterable),如列表或元組,返回counter字典。字典的鍵是iterable的元素,每個鍵的值是iterable中的元素計數。

首先,讓我們從collections中匯入counter資料型別:

from collections import counter

要建立counter物件,就像任何其它物件類一樣,將其分配給乙個變數。傳給它的唯一引數必須是iterable.

lst = [1, 2, 3, 3, 2, 1, 1, 1, 2, 2, 3, 1, 2, 1, 1]

counter = counter(lst)

print(counter)會得到一些類似於字典的內容:

counter()

你可以使用鍵訪問任何counter元素,如下所示。這和從標準python字典中提取元素的方式完全一致。

lst = [1, 2, 3, 3, 2, 1, 1, 1, 2, 2, 3, 1, 2, 1, 1]

counter = counter(lst)

print(counter[1])

most_common()函式

counter物件最有用的功能是most_common()函式。應用於counter物件時,它返回n個最常見元素及其計數的列表,從最常見到最罕見排序。

lst = [1, 2, 3, 3, 2, 1, 1, 1, 2, 2, 3, 1, 2, 1, 1]

counter = counter(lst)

print(counter.most_common(2))

上面的**列印出以下元組列表:

[(1, 7), (2, 5)]

每個元組的第乙個元素是列表中的元素,第二個元素是計數。這是一種快速簡便的方法,例如「獲取列表中最常見的前3個元素及其計數」。

要了解有關counter功能的更多資訊,請查閱官方文件。

(2) defaultdict

defaultdict完全就是乙個普通的python字典,除了額外的bonus: 當你試圖訪問乙個不存在的鍵,它不會報錯。

它使用預設值初始化鍵。預設值是根據建立defaultdict物件時作為引數傳遞的資料型別自動設定的。請看下面的**

from collections import defaultdict

names_dict = defaultdict(int)

names_dict["bob"] = 1

names_dict["katie"] = 2

sara_number = names_dict["sara"]

print(names_dict)

上面的示例中,int作為預設值傳遞給我們的defaultdict物件。接下來,為每個鍵定義值(「 bob」和「 katie」的數值)。但是在最後一行,我們嘗試訪問乙個尚未定義的鍵,即「 sara」鍵。

在普通字典中,這將引發錯誤。但是,defaultdict會自動為「 sara」初始化乙個新鍵,其值0對應我們的int資料型別。因此,最後一行列印出含有所有3個名字和相應值的字典。

defaultdict(, )

如果我們要用列表來初始化defaultdict,names_dict = defaultdict(list)會把「 sara」初始化為空列表,**將列印出以下內容:

defaultdict(, )

要了解有關defaultdict功能的更多資訊,請查閱官方文件。

(3) deque

collections庫的deque實現了相同功能的優化。該實現的主要功能是保持佇列大小,比如將佇列的最大長度設定為10,則deque根據fifo原理新增和刪除元素以保持最大長度為10。這是目前python中佇列的最佳實現。

讓我們從乙個例子開始。建立乙個deque物件,然後用從1到10的整數進行初始化。

from collections import deque

my_queue = deque(maxlen=10)

for i in range(10):

print(my_queue)

在上面的**中,我們首先初始化deque,指定我們希望它始終保持最大長度為10。然後,通過迴圈將值插入到佇列中。注意,填充佇列的功能與使用常規python列表的方式完全相同。最後,我們列印出結果。

deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], maxlen=10)

由於佇列中有乙個maxlen=10,並且迴圈中新增了10個元素,因此佇列中包含了從1到10的所有數字。現在讓我們看看新增更多數字時會發生什麼。

for i in range(10, 15):

print(my_queue)

在上面的**中,我們在佇列中新增了另外5個元素,數字從11到15。但是我們的佇列有最大長度maxlen=10,因此必須刪除一些元素。由於佇列必須遵循fifo原則,因此它將精確地按照其插入順序刪除佇列中的前5個元素:[1, 2, 3, 4, 5]。列印語句的結果如下:

deque([6, 7, 8, 9, 10, 11, 12, 13, 14, 15], maxlen=10)

(4) namedtuple

在python中建立常規元組時,其元素是通用且未命名的。這迫使你必須記住每個元組元素的準確索引。namedtuple解決了這個問題。

namedtuple()返回元組中的每個位置的固定名稱和namedtuple物件的通用名字。要使用namedtuple,先為其建立乙個模板。下面的**建立乙個名為「 person」 的namedtuple模板,其屬性為「 name」,「 age」和「 job」。

from collections import namedtuple

person = namedtuple('person', 'name age job')

建立模板後,即可使用它建立namedtuple物件。讓我們為2個人建立namedtuple並列印

person = namedtuple('person', 'name age job')

mike = person(name='mike', age=30, job='data scientist')

kate = person(name="kate", age=28, job='project manager')

print(mike)

print(kate)

上面的**非常簡單—我們使用namedtuple 模板的所有屬性來初始化「person」 。上面的列印語句將給出以下結果:

person(name='mike', age=30, job='data scientist')

person(name='kate', age=28, job='project manager')

可見,namedtuples讓元組物件的使用,可讀性和組織更簡單了。

要了解namedtuple的更多資訊,請查閱官方文件。

python collections幾個高效能資料型別簡單介紹完啦,馬上試試吧。

原文:

藝術生作品欣賞

這個不錯 13號 怎麼說,這個的畫風更讓我喜歡,可愛,雖然看得出來畫的並不複雜,但是確實 估計不難,但是效果不錯,這就說明想法的重要吧 15號 很酷的風格,這個風格很帥,是可以動的,有出拳的動作,就是工程量大概會很大,但是效果完成的感覺確實也挺帥 29號 這個人的作品的互動做的比其他的人好,而且確實...

成武縣 成武縣第四屆少兒藝術作品展

活動地點 成武縣美術館展廳 如果說個人成長的腳印連在一起就是人生道路,那麼這一張張繪畫作品正是你們所思 所想 所夢。美術的俄世界是多彩而夢幻的,一比一世界中,包容了整個大自然的色彩 一思以創意中,蘊含著孩子們五金的情思。世界因為孩子們的描繪變得更加美麗,世界因為孩子們的想象而變得更加神奇。在這收穫與...

藝術和科技的融合,VR作品獲得全球數碼藝術大獎

the lumen prize exhibition每年舉辦一次,向全球徵集數碼藝術作品,作品經由電子數碼裝置創作而成是必備條件。精挑細選的獲獎新 藝術作品將在世界各地頂尖場館展出。the lumen prize曾經成功在美國紐約,中國香港,英國及歐洲等地進行巡迴展覽。獲得大獎的giampietro...