日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python容器数据类型_python collections 容器数据类型

發布時間:2025/3/19 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python容器数据类型_python collections 容器数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個模塊實現了特定目標的容器,以提供Python標準內建容器 dict , list , set , 和 tuple 的替代選擇。

創建命名元組子類的工廠函數

類似列表(list)的容器,實現了在兩端快速添加(append)和彈出(pop)

類似字典(dict)的容器類,將多個映射集合到一個視圖里面

字典的子類,提供了可哈希對象的計數功能

字典的子類,保存了他們被添加的順序

字典的子類,提供了一個工廠函數,為字典查詢提供一個默認值

封裝了字典對象,簡化了字典子類化

封裝了列表對象,簡化了列表子類化

封裝了列表對象,簡化了字符串子類化

下面就常用的幾種方法舉例說明

1 import collections, re

2 #courter能夠統計可迭代對象中元素出現的次數,對于文件可以統計字符、單詞出現的top n的頻率;返回結果類型為class collections對象

3 # .Counter;most_common方法返回值為一個列表,列表的元素為元組,元組內為迭代對象和其出現的次數,在需要排序時使用

4 list1 = [1, 2, 3, 1, 2, 3, "wo", "jiu", "shi", "wo"]

5 str1 = "wojiushiwo,buyiyangdewo"

6 list_counter = collections.Counter(list1)

7 list_counter_most_common = collections.Counter(list1).most_common()

8 str_counter = collections.Counter(str1)

9 print(list_counter, type(list_counter))

10 print(list_counter_most_common, type(list_counter_most_common))

11 print(str_counter, type(str_counter))

12

13 #統計文件中top n字符出現的頻率,使用此方法操作文件必須使用只讀模式,否則會報IO對象不能迭代錯誤

14 data1 = open("test_file", encoding="utf-8").read()

15 file_char_counter = collections.Counter(data1)

16 print(file_char_counter, type(file_char_counter))

17 #統計文件中top n單詞出現的頻率

18 data2 = re.findall(r"\w+", open("test_file", encoding="utf-8").read())

19 file_word_counter = collections.Counter(data2)

20 print(file_word_counter, type(file_word_counter))

21

22 #Counter對象可以轉換為字典 列表 集合數據類型;列表內容為源Counter的key;字典內容為原來Counter類型的K:V,集合內容類比List內容

23 print(list(list_counter), dict(list_counter), set(list_counter))

24

25 #返回一個迭代器,其中每個元素將重復出現計數值所指定次。 元素會按首次出現的順序返回。 如果一個元素的計數值小于一,elements() 將會忽略它;注意此處字符串不要加引號,否則會報錯

26 element_test = collections.Counter(wo=3, jiu=2, shi=4)

27 print(element_test.elements())

28 for iters in element_test.elements():

29 print(iters)

30

31 #counter對象也支持數學運算

32 c = collections.Counter(a=3, b=1)

33 d = collections.Counter(a=1, b=2)

34 c + d # add two counters together: c[x] + d[x]

35 c - d # subtract (keeping only positive counts)

36 c & d # intersection: min(c[x], d[x])

37 c | d # union: max(c[x], d[x])

38 #單目加和減(一元操作符)意思是從空計數器加或者減去

39 c = collections.Counter(a=2, b=-4)

40 print(+c) #Counter({'a': 2})

41 print(-c) #Counter({'b': 4})

42

43 #deque對象; collections.deque([iterable[, maxlen]]) 返回一個新的雙向隊列對象,從左到右初始化(用方法 append()) ,

44 # 從 iterable (迭代對象) 數據創建。如果 iterable 沒有指定,新隊列為空。

45 #maxlen可以指定也可以不指定;不指定時deque可以無限長;

46 deque1 = collections.deque(list1, 3)

47 print(deque1, type(deque1)) #deque(['jiu', 'shi', 'wo'], maxlen=3)

48 deque1.append("test") #指定長度以后,當deque長度到達上限后繼續append元素會將首元素擠出去,

49 print(deque1, type(deque1)) #deque(['jiu', 'shi', 'wo'], maxlen=3)

50 """

51 deque常用方法

52 append(x)

53 添加 x 到右端。

54 appendleft(x)

55 添加 x 到左端。

56 clear()

57 移除所有元素,使其長度為0.

58 copy()

59 創建一份淺拷貝。

60 count(x)

61 計算 deque 中元素等于 x 的個數。

62 extend(iterable)

63 擴展deque的右側,通過添加iterable參數中的元素。

64 extendleft(iterable)

65 擴展deque的左側,通過添加iterable參數中的元素。注意,左添加時,在結果中iterable參數中的順序將被反過來添加。

66 index(x[, start[, stop]])

67 返回 x 在 deque 中的位置(在索引 start 之后,索引 stop 之前)。 返回第一個匹配項,如果未找到則引發 ValueError。

68 insert(i, x)

69 在位置 i 插入 x 。

70 如果插入會導致一個限長 deque 超出長度 maxlen 的話,就引發一個 IndexError。

71 pop()

72 移去并且返回一個元素,deque 最右側的那一個。 如果沒有元素的話,就引發一個 IndexError。

73 popleft()

74 移去并且返回一個元素,deque 最左側的那一個。 如果沒有元素的話,就引發 IndexError。

75 remove(value)

76 移除找到的第一個 value。 如果沒有的話就引發 ValueError。

77 reverse()

78 將deque逆序排列。返回 None 。

79 rotate(n=1)

80 向右循環移動 n 步。 如果 n 是負數,就向左循環。

81 如果deque不是空的,向右循環移動一步就等價于 d.appendleft(d.pop()) , 向左循環一步就等價于 d.append(d.popleft()) 。

82 Deque對象同樣提供了一個只讀屬性:

83 maxlen

84 Deque的最大尺寸,如果沒有限定的話就是 None 。

85 """

86

87 """

88 class collections.defaultdict([default_factory[, ...]])

89 返回一個新的類似字典的對象。 defaultdict 是內置 dict 類的子類。它重載了一個方法并添加了一個可寫的實例變量。其余的功能與 dict 類相同,此處不再重復說明。

90 本對象包含一個名為 default_factory 的屬性,構造時,第一個參數用于為該屬性提供初始值,默認為 None。所有其他參數(包括關鍵字參數)都相當于傳遞給 dict 的構造函數。

91 """

92 #使用 list 作為 default_factory,很輕松地將(鍵-值對組成的)序列轉換為(鍵-列表組成的)字典:

93 s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', "wo"), ('red', 1)]

94 d = collections.defaultdict(list)

95 for k, v in s:

96 d[k].append(v)

97 print(d, type(d)) #defaultdict(, {'yellow': [1, 3], 'blue': [2, 'wo'], 'red': [1]})

98

99 #設置 default_factory 為 int,使 defaultdict 用于計數;類似于Counter的用法

100 s = 'mississippi'

101 d = collections.defaultdict(int)

102 for k in s:

103 d[k] += 1

104 print(d, type(d))

105

106 #使用 set 作為 default_factory,很輕松地將(鍵-值對組成的)序列轉換為(鍵-集合組成的)字典:

107 s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', "wo"), ('red', 1)]

108 d = collections.defaultdict(set)

109 for k, v in s:

110 d[k].add(v)

111 print(d, type(d)) #defaultdict(, {'yellow': {1, 3}, 'blue': {2, 'wo'}, 'red': {1}})

112

113 #具名元組

114 name_tuple = collections.namedtuple("name_tuple", ["age", "name", "sex"])

115 name_tuple_obj1 = name_tuple(23, "zsq", "man")

116 print(name_tuple_obj1, type(name_tuple_obj1)) #name_tuple(age=23, name='zsq', sex='man')

117 print(name_tuple_obj1.name) # zsq 創建nametuple時相當于創建了其多個屬性,實例化是將實參傳入構造函數

118 print(name_tuple_obj1[1]) #zsq 也可以像類似list/tuple使用下標對其進行取值

119

120 #使用序列初始化nametuplue;序列元素數量必須要與nametuple定義時元素數量一致

121 list2 = [23, "wo", "xx"]

122 name_tuple_obj2 = name_tuple._make(list2)

123 print(name_tuple_obj2)

124

125 #nametuple實例的_asdict方法

126 name_tuple_asdict1 = name_tuple_obj2._asdict()

127 print(name_tuple_asdict1) #返回一個有序字典 OrderedDict([('age', 23), ('name', 'wo'), ('sex', 'xx')])

128 print(name_tuple_asdict1["name"]) #此種數據類型可以將nametuple定義時的形參作為字典key進行取值

標簽:deque,name,tuple,python,counter,數據類型,collections,print

來源: https://www.cnblogs.com/flags-blog/p/12663690.html

總結

以上是生活随笔為你收集整理的python容器数据类型_python collections 容器数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人妻熟女一区 | 人妻丰满熟妇av无码久久洗澡 | 午夜男人av| www.99视频| 性色在线视频 | 99热在| 亚洲av无码一区二区乱子伦as | 九九热这里有精品 | 国产视频不卡 | 看黄色一级 | 国产精品久久久久毛片 | 怡红院成人网 | 一区自拍| 国产婷 | 国产午夜精品福利视频 | 国产又粗又长又硬免费视频 | 欧美精品一区二区成人 | 在线视频这里只有精品 | 亚洲乱码国产一区三区 | 国产真人做爰毛片视频直播 | 久久人妖 | 豆花视频在线播放 | 伊人久久国产精品 | 国产自产21区 | 国产精品15p | 一级不卡毛片 | 免费在线观看av网址 | 18禁免费观看网站 | 欧美电影一区二区三区 | 男女草比视频 | 成人网在线观看 | 成人片在线播放 | 亚洲蜜桃精久久久久久久久久久久 | 超碰在线人人 | 日本视频免费在线 | 国产成人手机视频 | 精品无码一区二区三区在线 | 日本一区二区三区在线视频 | 91亚洲精品视频 | 欧美日韩蜜桃 | 欧美国产在线视频 | 少女与动物高清版在线观看 | 一级片免费在线播放 | 色黄大色黄女片免费中国 | 草草网址 | 麻豆视频网站在线观看 | 雪花飘电影在线观看免费高清 | 精品熟女一区 | 伊人成人在线 | av网天堂| 日韩av男人天堂 | 日韩黄色在线播放 | 中文字幕在线观看三区 | 狼人伊人干 | 亚洲一二三四 | 久久99精品国产麻豆婷婷洗澡 | 欧美午夜在线 | 青青草视频网站 | 欧美顶级毛片在线播放 | 国产三级一区二区三区 | 在线视频福利 | 黄色91视频 | 久久久99精品 | 69av导航 | 国产91在线高潮白浆在线观看 | 日韩亚洲国产精品 | 国产主播一区 | 国产伦视频| 亚洲日本久久久 | 日韩成人在线视频 | 古装做爰无遮挡三级聊斋艳谭 | 国产成人精品av久久 | 国产色a| 动漫美女被到爽流 | 啪啪中文字幕 | 手机在线观看毛片 | 婷婷在线一区 | 黄黄的网站 | 中文字幕国产专区 | 日韩精彩视频 | 国产夜夜操 | 中文人妻一区二区三区 | 森林影视官网在线观看 | 国产高潮在线 | 三级网站免费 | 影音先锋在线看片资源 | 日本激情一区二区三区 | 狗爬女子的视频 | 最新av网址在线观看 | 色www亚洲国产张柏芝 | 欧美丰满熟妇xxxx | 国产成人不卡 | 久久亚洲一区 | 天天操女人 | 欧美三级午夜理伦三级 | 日韩免费在线观看 | 国产精品100| 成人毛片视频在线观看 | 亚洲在线免费观看 |