首页 > 编程语言 > 详细

1.13 Python基础知识 - 字典和集合

时间:2017-02-21 15:26:51      阅读:153      评论:0      收藏:0      [点我收藏+]

一、字典

  字典是一组键-值对的数据结构。每个键对应一个值。在字典中,键不能重复。根据键可以查询到值。字典是键和值的映射关系

  字典的定义:

  字典通过花括号中用逗号分隔的元素(键-值。键-值对使用冒号分隔),格式如下:

{键1:值1,[键2:值2,...,键n:值n]}

# 值可以为任意对象。字典中的键是唯一的,不能重复。

  字典也可以通过创建dict对象来创建,格式如下:

# 创建一个空字典
dict()

# 使用关键字参数,创建一个新的字典
dict(**kwargs)

# 从一个字典对象创建一个新的字典
dict(mapping)

# 使用序列,创建一个新的字典
dict(iterable)

  

  1、字典的访问操作,基本格式:

# 返回键为key的value;如果ket不存在,则导致KeyError
d[key]

# 设置d[key]的值为value;如果key不存在,则添加键/值对
d[key]=value

# 删除字典元素;如果ket不存在,则导致KeyError
del d[key]

 

  2、动态访问字典的数据

  d.keys:返回字典d的键key的列表

  d.values:返回字典d的值values的列表

  d.items():返回字典d的(key,value)对的列表

 

  3、判断字典键是否存在

  # 如果为True,则表示存在

  key in d

  # 如果为True,则表示不存在

  key not in d

  

  4、字典对象的方法

  我们定义一个字典:

 d = {1:‘food‘,2:‘drink‘,3:‘fruit‘}
  
# 删除所有元素
d.clear()
print(d)

# 输出结果

{}
# 浅拷贝字典
d1 = d.copy()
print(d)
print(d1)

# 输出结果

{1: food, 2: drink, 3: fruit}
{1: food, 2: drink, 3: fruit}
#返回键k对应的值,如果key不存在,返回None
print(d.get(1))
print(d.get(5))

# 输出结果

food
None
#返回键k对应的值,如果key不存在,返回v
print(d.get(1,))
print(d.get(5,))

# 输出结果

food
无
# 如果键k存在,返回其值,并删除该元素;否则导致KeyError
print(d.pop(1))
print(d)

# 输出结果

food {2: drink, 3: fruit}
# 如果键k存在,返回其值,并删除该元素;否则返回v
print(d.pop(5,))
print(d)

# 输出结果

无
{1: food, 2: drink, 3: fruit}
# 如果键k存在,返回其值;否则添加元素k=v,v默认为None
print(d.setdefault(1))

print(d.setdefault(4))
print(d)

# 输出结果

food
None
{1: food, 2: drink, 3: fruit, 4: None}
# 使用字典或键值对,更新或添加元素到字典d
d1 = {1:食物,4:书籍}
d.update(d1)
print(d)

# 输出结果

{1: 食物, 2: drink, 3: fruit, 4: 书籍}

 

二、集合

  集合数据类型是没有顺序的简单对象的聚合,且集合中元素不重复。

  集合的定义:花括号中用逗号分隔元素进行定义的,格式如下:

  {x1,[x2,...,xn]}

  也可以通过set对象方法创建集合,格式如下:

  set():创建一个空的集合

  set(iterable):创建一个集合,包含的元素为可枚举对象iterable中的元素

 

  1、判断集合元素是否存在

    判断一个元素x是否在集合s中,方法如下:

    x in s :如果为True,则表示存在

    x in not s :如果为True,则表示不存在

s  = set(hello)

print(h in s )

print(H not in s)

# 输出结果

True
True

  2、集合的运算:并集、交集、差集和对称差集

    1)并集

s1 = {1,2,3}
s2 = {2,3,4}

# 对象方法
print(s1.union(s2))

# 运算符方法
print(s1 | s2)

# 输出结果

{1, 2, 3, 4}
{1, 2, 3, 4}

    2)交集

s1 = {1,2,3}
s2 = {2,3,4}

# 对象方法
print(s1.intersection(s2))

# 运算符方法
print(s1 & s2)

#输出结果

{2, 3}
{2, 3}

    3)差集

s1 = {1,2,3}
s2 = {2,3,4}

# 对象方法
print(s1.difference(s2))

#运算符方法
print(s1 - s2)

#输出结果

{1}
{1}

    4)对称差集

s1 = {1,2,3}
s2 = {2,3,4}

# 对象方法
print(s1.symmetric_difference(s2))

#运算符方法
print(s1 ^ s2)

# 输出结果

{1, 4}
{1, 4}

  

  3、集合的比较运算:相等、子集和超集(又称父集)

    1)相等

s1 = {1,2,3}
s2 = {2,3,4}

print(s1 == s2)
print(s1 != s2)

# 输出结果
False
True

    2)子集

s1 = {1,2,3}
s2 = {3,2,1}
s3 = {1,2}
s4 = {7,9}

# 对象方法
print(s3.issubset(s1))

# 运算符方法
print(s3 < s1)

输出结果
True
True

    3)超集

s1 = {1,2,3}
s2 = {3,2,1}
s3 = {1,2}
s4 = {7,9}

# 对象方法
print(s2.issuperset(s3))

#运算符方法
print(s2 > s3)

#输出结果
True
True

 

  4、集合的其他方法

    1)更新

s1 = {1,2,3}
s2 = {2,3,4}

s1.update(s2)
print(s1)

# 输出结果
{1, 2, 3, 4}

    2)添加

s1 = {1,2,3}

s1.add(a)
print(s1)

# 输出结果
{1, 2, 3, a}

    3)删除

      remove

s1 = {1,2,3}

# 从集合中删除元素1,若不存在,则导致KeyError
s1.remove(1)
print(s1)

#输出结果
{2, 3}

      discard

s1 = {1,2,3}

# 从集合中删除元素3,若不存在,不做任何操作
s1.discard(3)

print(s1)

#输出结果
{1, 2}

      pop

s1 = {1,2,3}

# 从集合中随机弹出一个元素,如果s为空,则导致KeyError
s1.pop()

print(s1)

#输出结果
{2, 3}

 

    

  

  

 

 



  

 

1.13 Python基础知识 - 字典和集合

原文:http://www.cnblogs.com/topspeedking/p/6424100.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!