• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

collections模块

python 搞java代码 3年前 (2022-05-21) 17次浏览 已收录 0个评论

collections模块

  collections模块:提供一些python八大类型以外的数据类型

  python默认八大数据类型:

    - 整型

    - 浮点型

    - 字符串

    - 字典

    - 列表

    - 元组

    - 集合

    - 布尔类型

1、具名元组

  具名元组只是一个名字

  应用场景:

    ① 坐标

<span>#</span><span> 应用:<a href="https://www.gaodaima.com/tag/%e5%9d%90%e6%a0%87" title="查看更多关于坐标的文章" target="_blank">坐标</a></span>
<span>from</span> collections <span>import</span><span> namedtuple

</span><span>#</span><span> 将"坐标"变成"对象"的名字</span><span>
#</span><span> 传入可迭代对象必须是有序的</span>
point = namedtuple(<span>"</span><span>坐标</span><span>"</span>, [<span>"</span><span>x</span><span>"</span>, <span>"</span><span>y</span><span>"</span> ,<span>"</span><span>z</span><span>"</span>])    <span>#</span><span> 第二个参数既可以传可迭代对象</span><span>
#</span><span> point = namedtuple("坐标", "x y z")    # 也可以传字符串,但是字符串之间以空格隔开</span>
p = point(1, 2, 5)    <span>#</span><span> 注意元素的个数必须跟namedtuple中传入的可迭代对象里面的值数量一致</span>

<span>#</span><span> 会将1 --> x , 2 --> y , 5 --> z</span>
<span>print</span><span>(p)
</span><span>print</span><span>(p.x)
</span><span>print</span><span>(p.y)
</span><span>print</span>(p.z)

www#gaodaima.com来源gaodai#ma#com搞*代#码网搞代码

  执行结果:

坐标(x=1, y=2, z=5<span>)
</span>1
2
5

 

  ② 扑克牌

<span>#</span><span> 扑克牌</span>
<span>from</span> collections <span>import</span><span> namedtuple

</span><span>#</span><span> 获取扑克牌对象</span>
card = namedtuple(<span>"</span><span>扑克牌</span><span>"</span>, <span>"</span><span>color number</span><span>"</span><span>)

</span><span>#</span><span> 产生一张张扑克牌</span>
red_A = card(<span>"</span><span>红桃</span><span>"</span>, <span>"</span><span>A</span><span>"</span><span>)
</span><span>print</span><span>(red_A)
black_K </span>= card(<span>"</span><span>黑桃</span><span>"</span>, <span>"</span><span>K</span><span>"</span><span>)
</span><span>print</span>(black_K)

  执行结果:

扑克牌(color=<span>"</span><span>红桃</span><span>"</span>, number=<span>"</span><span>A</span><span>"</span><span>)
扑克牌(color</span>=<span>"</span><span>黑桃</span><span>"</span>, number=<span>"</span><span>K</span><span>"</span>)

 

  ③ 个人信息

<span>#</span><span> 个人的信息</span>
<span>from</span> collections <span>import</span><span> namedtuple

p </span>= namedtuple(<span>"</span><span>china</span><span>"</span>, <span>"</span><span>city name age</span><span>"</span><span>)

ty </span>= p(<span>"</span><span>TB</span><span>"</span>, <span>"</span><span>ty</span><span>"</span>, <span>"</span><span>31</span><span>"</span><span>)
</span><span>print</span>(ty)

  执行结果:

china(city=<span>"</span><span>TB</span><span>"</span>, name=<span>"</span><span>ty</span><span>"</span>, age=<span>"</span><span>31</span><span>"</span>)

 

2、有序字典

  python中字典默认是无序的

  collections中提供了有序的字典:   from collections import OrderedDict

<span>#</span><span> python默认无序字典</span>
dict1 = dict({<span>"</span><span>x</span><span>"</span>: 1, <span>"</span><span>y</span><span>"</span>: 2, <span>"</span><span>z</span><span>"</span>: 3<span>})
</span><span>print</span>(dict1, <span>"</span><span>   ------>   无序字典</span><span>"</span><span>)
</span><span>print</span>(dict1.get(<span>"</span><span>x</span><span>"</span><span>))


</span><span>#</span><span> 使用collections模块打印有序字典</span>
<span>from</span> collections <span>import</span><span> OrderedDict

order_dict </span>= OrderedDict({<span>"</span><span>x</span><span>"</span>: 1, <span>"</span><span>y</span><span>"</span>: 2, <span>"</span><span>z</span><span>"</span>: 3<span>})
</span><span>print</span>(order_dict, <span>"</span><span>   ------>   有序字典</span><span>"</span><span>)
</span><span>print</span>(order_dict.get(<span>"</span><span>x</span><span>"</span>))    <span>#</span><span> 与字典取值一样,使用.get()可以取值</span>
<span>print</span>(order_dict[<span>"</span><span>x</span><span>"</span>])    <span>#</span><span> 与字典取值一样,使用key也可以取值</span>
<span>print</span>(order_dict.get(<span>"</span><span>y</span><span>"</span><span>))
</span><span>print</span>(order_dict[<span>"</span><span>y</span><span>"</span><span>])
</span><span>print</span>(order_dict.get(<span>"</span><span>z</span><span>"</span><span>))
</span><span>print</span>(order_dict[<span>"</span><span>z</span><span>"</span>])

  执行结果:

{<span>"</span><span>x</span><span>"</span>: 1, <span>"</span><span>y</span><span>"</span>: 2, <span>"</span><span>z</span><span>"</span>: 3}    ------><span>   无序字典
</span>1<span>
OrderedDict([(</span><span>"</span><span>x</span><span>"</span>, 1), (<span>"</span><span>y</span><span>"</span>, 2), (<span>"</span><span>z</span><span>"</span>, 3)])    ------><span>   有序字典
</span>1
1
2
2
3
3

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:collections模块

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址