Python遍歷字典,python 字典處理_python之高效處理字典、序列的一些語法

 2023-10-21 阅读 25 评论 0

摘要:知識點記錄: 1.序列相關 使用deque 進行保留最后N個元素 a = deque(maxlen=3) a.append(2) Python遍歷字典、a.appendleft(1) a.append(3) a.append(4) # a.pop() 也可以 a.leftpop() # 輸出 [2, 3, 4] python 創建字典?# ps: 在隊列兩端插入或刪除元素時間復雜度都是

知識點記錄:

1.序列相關

使用deque 進行保留最后N個元素

a = deque(maxlen=3)

a.append(2)

Python遍歷字典、a.appendleft(1)

a.append(3)

a.append(4)

# a.pop() 也可以 a.leftpop()

# 輸出

[2, 3, 4]

python 創建字典?# ps: 在隊列兩端插入或刪除元素時間復雜度都是 O(1) ,區別于列表,在列表的開頭插入或刪除元素的時間復雜度為 O(N)

查找最大或者最小的幾個元素

import heapq

nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]

print(heapq.nlargest(3, nums)) # Prints [42, 37, 23]

print(heapq.nsmallest(3, nums)) # Prints [-4, 1, 2]

python字典取值?使用filter()過濾序列元素

values = ['1', '2', '-3', '-', '4', 'N/A', '5']

def is_int(val):

try:

x = int(val)

return True

python tuple、except ValueError:

return False

ivals = list(filter(is_int, values))

print(ivals)

# Outputs ['1', '2', '-3', '4', '5']

用 iterable 中函數 function 返回真的那些元素,構建一個新的迭代器。iterable 可以是一個序列,一個支持迭代的容器,或一個迭代器。如果 function 是 None ,則會假設它是一個身份函數,即 iterable 中所有返回假的元素會被移除。

python編程?請注意, filter(function, iterable) 相當于一個生成器表達式,當 function 不是 None 的時候為 (item for item in iterable if function(item));function 是 None 的時候為 (item for item in iterable if item) 。

2.字典相關

使用 from collections import OrderDict 會默認按照插入的順序進行排序,可以在數據庫查出來數據進行拼裝時候不需要轉換為列表排序

使用 sorted函數進行排序 sorted(zip(prices.values(), prices.keys())) 可以先將字典的key和value進行反轉映射,然后就sorted排序,默認會按照元祖中的第一個值進行排序

按照指定的元素進行排序

from oprator import itemgetter

python字典遍歷取值、# 這個方法可以代替匿名函數,并且效率更高

rows = [

{'fname': 'Brian', 'lname': 'Jones', 'uid': 1003},

{'fname': 'David', 'lname': 'Beazley', 'uid': 1002},

{'fname': 'John', 'lname': 'Cleese', 'uid': 1001},

{'fname': 'Big', 'lname': 'Jones', 'uid': 1004}

python有序序列類型,]

rows_by_uid = sorted(rows, key=itemgetter('uid'))

等同于

rows_by_uid = sorted(rows, key=lambda r: r['uid'])

# 也同時支持多 key進行排序

rows_by_lfname = sorted(rows, key=itemgetter('lname','fname'))

python數據字典,按照字典中的對象屬性去進行排序

class Age:

def __init__(self, number):

self.number = number

def __repr__(self):

return 'Age({})'.format(self.number)

Python字典方法。def sort_notcompare():

ages = [Age(23), Age(3), Age(99)]

print(ages)

# 匿名函數方式

print(sorted(ages, key=lambda a: a.number))

# attrgetter 方式 效率更高

python字典序、from operator import attrgetter

sorted(ages, key=attrgetter('number'))

對列表中的字典序列進行分組

from operator import itemgetter

from itertools import groupby # 使用groupby 進行分組

rows = [

python字典用法。{'address': '5412 N CLARK', 'date': '07/01/2012'},

{'address': '5148 N CLARK', 'date': '07/04/2012'},

{'address': '5800 E 58TH', 'date': '07/02/2012'},

{'address': '2122 N CLARK', 'date': '07/03/2012'},

{'address': '5645 N RAVENSWOOD', 'date': '07/02/2012'},

{'address': '1060 W ADDISON', 'date': '07/02/2012'},

python中遍歷字典的方法、{'address': '4801 N BROADWAY', 'date': '07/01/2012'},

{'address': '1039 W GRANVILLE', 'date': '07/04/2012'},

]

rows.sort(key=itemgetter('date'))

# Iterate in groups

for date, items in groupby(rows, key=itemgetter('date')):

python創建一個空字典?print(date)

for i in items:

print (i)

# 輸出結果:

07/01/2012

{'date': '07/01/2012', 'address': '5412 N CLARK'}

Python 遍歷字典?{'date': '07/01/2012', 'address': '4801 N BROADWAY'}

07/02/2012

{'date': '07/02/2012', 'address': '5800 E 58TH'}

{'date': '07/02/2012', 'address': '5645 N RAVENSWOOD'}

{'date': '07/02/2012', 'address': '1060 W ADDISON'}

07/03/2012

python的序列類型不包括、{'date': '07/03/2012', 'address': '2122 N CLARK'}

07/04/2012

{'date': '07/04/2012', 'address': '5148 N CLARK'}

{'date': '07/04/2012', 'address': '1039 W GRANVILLE'}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/156620.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息