水莹儿 发表于 2018-8-7 08:26:34

Python(六)元组、集和、字典

  使用技巧:
  ·python实现数据交换的简洁方式:x,y = y,x这样x和y的值就可以互换了。
  ·只打印3.1415926小数点后两位
  In : print "%f" %(3.1415926)
  3.141593
  In : print "%.2f" %(3.1415926)
  3.14
  ·以3位数打印出2
  In : print "%.3d" %(2)
  002
  ·打印2的时候以1400开头
  In : print "%d" %(2)
  2
  In : print "1400%d" %(2)
  14002
  ·可变数据类型:list(列表)、dict(字典)、set(集和)
  ·不可变数据类型:数字、字符串、元组
  ·有序数据类型:字符串、列表、元组
  ·无序数据类型:数字、字典,集和
  #无序的数据类型,增加一个数据,这个数据不一定会排在最后
  #有序的数据类型,每增加一个数据,这个数据都会被排到最后
  元组:带了紧箍咒的列表
  元组和列表不同在于元组为不可变数据类型,他没有append等方法,存储数据更安全
  一、创建:
  tu = (1,2,3,4)
  注意:单个元组定义必须在后面加逗号,如tu = (1,)
  工厂方法:t= tuple()
  二、元组的操作
  1.元组也属于序列,支持索引、切片、拼接、重复、成员操作符

  2.元组特性
  · 对元组分别赋值,引申对多个变量也可通过元组方式分别赋值

  3.删除元组

  三、元组的方法
  · t.count(value)-->int返回value在元组中出现的次数;
  · t.index(value)返回value在元组中的偏移量(即索引值)
  题目:
  打印出t元组中索引2-7之间,打印出值为bool类型元素的索引值
  解答:
#!/usr/bin/env python  
# coding:utf-8
  
t=(1,2,3,4,True,False,'hello',)
  
for i in t:
  
    if type(i) == bool:
  
      print t.index(i,2,7)
  四、内置函数:cmp,len,max,min,enumerate,zip
  集和:
  集和是无序的,不重复的数据类型,因此可以去除列表或者元组中重复的元素
  集和里面不能放可变数据类型
  集和里面remove()和discard()都是删除,但是remove里面如果没有元素会报错,而discard没有元素不会报错
  一、集合的关系测试操作
  · 交集: list_1.intersection(list_2)
  · 并集: list_1.union(list_2)
  · 差集: list_1.difference(list_2)
  list_2.difference(list_1)
  · 对等差分 list_1.symmetric_difference(list_2)
  · 子集 list_1.issubset(list_2)
  · 父集 list_1.issuperset(list_2)
  · 有无交集 list_1.isdisjoint(list_2)
  · 交集: list_1 & list_2
  · 并集: list_1 | list_2
  · 差集: list_1 - list_2
  list_2 - list_1
  · 对等差分:list_1 ^ list_2
  二、集合的添加
  · s.add(1)
  在集合中添加一项
  · s.update()
  在集合中添加多项,跟的参数应该是可迭代类型
  三、集和的删除
  · s.remove(1)
  删除集合中指定的元素
  · s.pop()
  随机删除集合中的某个元素,并返回删除的元素
  四、集和的其他操作
  · len(s)
  显示集合set的长度
  · "1" in s
  检测某元素是否为集合s的成员,返回布尔值
  · s.copy()
  集合的浅拷贝,此处不深入研究,后面会说
  · s.clear()
  清空集合的所有元素
  字典:
  一、字典的定义
  字典不支持索引、切片
  字典里面的key不能重复,但是value没有任何限制
  · 简单字典创建

  · 使用工厂函数创建:

  · 内建方法:fromkeys
  字典中的key有相同的value值,默认为None


  题目:
  生成100个学号,学号总共由7位数组成,前两位“14”开头,代表学校编号;
  请生成学号1400001~1400100
  解答:
#!/usr/bin/env python  
# coding:utf-8
  
stu_ids = []
  
for i in range(1,101):
  
    s_id = "1400%.3d" %(i) #将i以3位数打印出来,并且在i前面加上1400
  
    stu_ids.append(s_id)
  
print stu_ids
  二、字典的访问
  · 直接通过key访问

  · 循环遍历访问

  三、字典key-value的添加
  · dic = value
  通过这个操作,我们会发现字典是无序的数据类型

  四、字典的删除
  · dic.pop(key)
  根据key值删除字典的元素;
  · dic.popitem()
  随机删除字典元素,返回(key,value)
  · dic.clear()
  删除字典中的所有元素
  · del dic
  删除字典本身
  五、字典的常用方法
  · dict.get()
  如果key存在于字典中,返回对应value值
  · dic.keys()
  返回字典的所有key值
  · dict.has_keys()
  字典中是否存在某个key值
页: [1]
查看完整版本: Python(六)元组、集和、字典