日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

python数据结构编程_写给Python编程高手之 数据结构

發(fā)布時(shí)間:2025/3/15 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数据结构编程_写给Python编程高手之 数据结构 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

python視頻教程欄目介紹Python編程需要注意的關(guān)鍵點(diǎn)。

如何在列表,字典,集合中根據(jù)條件篩選數(shù)據(jù)

案例:如何在下列列表data中篩選出大于0的數(shù)data = [1, -1, 2, 3, 4, 7]復(fù)制代碼

使用filter函數(shù),第一個(gè)參數(shù)為一個(gè)函數(shù),也可以像如下代碼傳入一個(gè)lambda表達(dá)式。list(filter(lambda x: x >= 0, data))復(fù)制代碼

另一種方案是像如下使用列表生成式,這種方案相對(duì)于上一種方案更加高效。print([x for x in data if x >= 0])復(fù)制代碼

在字典這種數(shù)據(jù)結(jié)構(gòu)中,也可以使用類似的字典生產(chǎn)式。from random import randint

d = { x: randint(60, 100) for x in range(1, 21)}

{k:v for k, v in d.items() if v >= 90}復(fù)制代碼

如何為元組中的每個(gè)元素命名,提高程序可讀性

方案:定義常量,使用常量索引元組中的元素,例如下列代碼stu = ('hao', 18, 'male', '1078244513@qq.com')

NAME = 0AGE = 1SEX = 2print(stu[SEX])復(fù)制代碼

方案:使用collections包的namedtuple的函數(shù),該函數(shù)會(huì)返回一個(gè)新"類"的定義,使用方式如下。from collections import namedtuple

Stu = namedtuple('Stu', ['name', 'age', 'sex', 'email'])# stu = Stu('hao', 18, 'male', '1078244513@qq.com')stu = Stu(name='hao', age=18, sex='male', email='1078244513@qq.com')

print(stu.email)復(fù)制代碼

如何統(tǒng)計(jì)序列中元素的出現(xiàn)頻率

問(wèn)題: 統(tǒng)計(jì)下列數(shù)字列表中每個(gè)數(shù)字出現(xiàn)的次數(shù)from random import randint

data = [randint(0, 20) for _ in range(30)]復(fù)制代碼

方案:定義一個(gè)dict(字典),然后遍歷數(shù)組。c = dict.fromkeys(data, 0)復(fù)制代碼

上述代碼會(huì)生成一個(gè)data中不同值為鍵,以0為值的一個(gè)字典對(duì)象。for x in data:

c[x] += 1復(fù)制代碼

方案:使用collections包中的Counter函數(shù)c2 = Counter(data)復(fù)制代碼

這種方案也可以方便的獲取到出現(xiàn)次數(shù)最多的前幾個(gè)。c2.most_common(3)復(fù)制代碼

如何根據(jù)字典中的值的大小,對(duì)字典中的項(xiàng)排序

問(wèn)題:對(duì)如下字典中的值進(jìn)行排序cj = {x: randint(60, 100) for x in 'xyzabc'}復(fù)制代碼

方案:sorted函數(shù)中的第二個(gè)參數(shù),可以傳入一個(gè)函數(shù)對(duì)象,sorted會(huì)根據(jù)該函數(shù)的返回值進(jìn)行排序。sorted(cj.items(), key=lambda item:item[1])復(fù)制代碼

注:該函數(shù)返回一個(gè)新的字典對(duì)象

如何快速找到多個(gè)字典中的公共鍵(key)?

首先,介紹一下python中的采樣函數(shù)sample,它位于random包中。該接收一個(gè)序列類型的參數(shù)和一個(gè)數(shù)字,返回一個(gè)隨機(jī)從序列中隨機(jī)采樣獲得一個(gè)序列。如下代碼。from random import sample

sample('abcdefg', 3)復(fù)制代碼

問(wèn)題:如何獲取下列三個(gè)集合的公共鍵。s1 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}

s2 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}

s3 = {x : randint(1, 4) for x in sample('abcdefg', andint(3, 6))}復(fù)制代碼

可以使用集合的交集操作完成這項(xiàng)任務(wù)。s1.keys() & s2.keys() & s3.keys()復(fù)制代碼

如何讓字典保持有序?

collections包的OrderedDict類型,會(huì)保持進(jìn)入字典的次序。相關(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程

總結(jié)

以上是生活随笔為你收集整理的python数据结构编程_写给Python编程高手之 数据结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。