码迷,mamicode.com
首页 > 编程语言 > 详细

python字典与集合操作

时间:2017-10-11 10:36:43      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:rom   ef6   class   add   交集   包含   file   section   intersect   

字典操作

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

语法:

info = {
    s1: "jack",
    s2: "musker",
    s2: "lili",
}

字典的特性:

  • dict是无序的
  • key必须是唯一的,so 天生去重

增加

技术分享
>>> info[s4] = "wangwu"
>>> info
{s2: lili, s1: jack, s4: wangwu}
View Code

 修改

技术分享
>>> info[s3] = "丽丽"
>>> info
{s2: lili, s3: 丽丽, s1: jack, s4: wangwu}
View Code

 删除

技术分享
>>> info.pop(s1)
jack
>>> info
{s2: lili, s3: 丽丽, s4: wangwu}

>>> del info[s3]
>>> info
{s2: lili, s4: wangwu}

>>> info.popitem()
(s2, lili)
>>> info
{s4: wangwu}
View Code

查找

技术分享
>>> s2 in info    #标准用法
True
>>> info.get(s2)    #获取
lili
>>> info[s2]        #同上,但是看下面
lili
>>> info[s5]        #如果一个key不存在,就报错,get不会,不存在只返回None
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    info[s5]
KeyError: s5
View Code

其他操作

技术分享
#values
>>> info.values()
dict_values([lili, jack])

#keys
>>> info.keys()
dict_keys([s2, s1])

#setdefault
>>> info.setdefault(s6,musker)
musker
>>> info
{s2: lili, s6: musker, s1: jack}
>>> info.setdefault(s2,wangwu)
lili
>>> info
{s2: lili, s6: musker, s1: jack}


#update 
>>> info
{s2: lili, s6: musker, s1: jack}
>>> b = {1:a, 2:b}
>>> info.update(b)
>>> info
{s2: lili, 1: a, 2: b, s6: musker, s1: jack}

#items
>>> info.items()
dict_items([(s2, lili), (1, a), (2, b), (s6, musker), (s1, jack)])

#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
>>> dict.fromkeys([1,2,3],testd)
{1: testd, 2: testd, 3: testd}
View Code

循环dict

技术分享
#方法1
for key in info:
    print(key,info[key])

#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    print(k,v)
View Code

集合操作

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作

技术分享
s = set([3,5,9,10])      #创建一个数值集合  
  
t = set("Hello")         #创建一个唯一字符的集合  


a = t | s          # t 和 s的并集  
  
b = t & s          # t 和 s的交集  
  
c = t – s          # 求差集(项在t中,但不在s中)  
  
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
  
   
  
基本操作:  
  
t.add(x)            # 添加一项  
  
s.update([10,37,42])  # 在s中添加多项  
  
   
  
使用remove()可以删除一项:  
  
t.remove(H)  
  
  
len(s)  
set 的长度  
  
x in s  
测试 x 是否是 s 的成员  
  
x not in s  
测试 x 是否不是 s 的成员  
  
s.issubset(t)  
s <= t  
测试是否 s 中的每一个元素都在 t 中  
  
s.issuperset(t)  
s >= t  
测试是否 t 中的每一个元素都在 s 中  
  
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
  
s.copy()  
返回 set “s”的一个浅复制
View Code

 

python字典与集合操作

标签:rom   ef6   class   add   交集   包含   file   section   intersect   

原文地址:http://www.cnblogs.com/zhichaoma/p/7648543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!