学习python——collections系列

1、counter——对字典类型的补充,用于追踪值的出现次数。具备字典的功能+自己的功能。继承了dict的功能。

Eg

Import collections

Obj=collections.Counter(“aabbccddds”) #对字符串里的字母记数,Counter首字母大写

Ret=obj.mostcommon(3) #拿到前三项

Print(obj)

 

#For循环查看obj里的东西

For item in obj.element():

Print(item) #返回的值是key,有几个key就返回几个

For k,v in obj.items():
print(k,v) #返回keyvalue

 

obj.update([‘eric’,’11’,’11’]) #更新

Obj.subtract([‘eric’]) #删除

2、有序字典

Dic=collections.OrderDict()

Dic[‘k1’]=’v1’

Dict[‘k2’]=’v2’

Print(dic)

Dic.move_to_end(‘k1’) #k1键所代表的键和值,拿到最后面

Print(dic)

3、默认字典defaultdict

Dic=collections.defaultdict(list)

Dic[‘k1’].append(‘alex’)

Print(dic)

4、可命名元组(命名了一个元组叫做MytupleClass,然后里面有三个键和值)

MytupleClass=collections.namedtuple('MytupleClass',['x','y','z'])
obj=MytupleClass(11,22,33)
print(obj)
print(obj.x)
print(obj.y)
print(obj.z)

5、队列

1deque(双向队列)方法appendextend的区别:append将加入的东西看作一个对象作为整体加入,extend将加入的东西看做一个序列加入;count方法记数队列里的字符个数;rotate将字符串末尾的字符一个一个的拿到前面,比如2就进行两次。

d=collections.deque()
a=['ili','li','u']
d.append(1)
d.appendleft('10')
d.append(a)
print(d)
r=d.count(1)
print(r)
d.extend(a)
print(d)
d.rotate(2)
print(d)

运行结果》》

deque(['10', 1, ['ili', 'li', 'u']])

1

deque(['10', 1, ['ili', 'li', 'u'], 'ili', 'li', 'u'])

deque(['li', 'u', '10', 1, ['ili', 'li', 'u'], 'ili'])

 

(2)单项队列queue

Import queue

Q=queue.Queue()

  1. put(‘123’)

Print(q.qsize())

Print(q.get())

 

6、深浅拷贝

浅拷贝只拷贝一层,而深拷贝拷贝至最小单位。

转载于:https://www.cnblogs.com/zyycumt/p/11540211.html

Pythoncollections模块是Python标准库中的一个模块,它提供了一些额外的数据类型和数据结构,用于在解决问题时更方便地操作数据。 该模块包含了许多有用的容器数据类型,如命名元组(namedtuple)、默认字典(defaultdict)、计数器(Counter)和有序字典(OrderedDict)。这些数据类型在处理特定问题时非常有用,可以提高代码的可读性和效率。 其中,命名元组是一种带有字段名的元组,可以通过字段名来访问元组中的元素,而不仅仅是通过索引。默认字典是一种字典,它在访问不存在的键时会返回一个默认值,而不会报错。计数器是一种字典,它可以统计序列中每个元素出现的次数。有序字典是一种字典,它可以按照元素添加的顺序进行迭代。 此外,collections模块还包含了其他一些有用的函数和类,如deque(双向队列)和ChainMap(链式映射)。deque是一种具有高效插入和删除操作的队列,而ChainMap可以将多个字典合并成一个逻辑上的字典。 总的来说,collections模块为我们提供了更多灵活和功能丰富的数据类型和数据结构,使我们能够更方便地处理数据和解决问题。它是Python编程中一个非常有用的模块。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python collections——容器数据类型.7z](https://download.csdn.net/download/lly1122334/12557681)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Pythoncollections](https://blog.csdn.net/peng78585/article/details/125387640)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值