使用技巧:

•python实现数据交换的简洁方式:x,y = y,x  这样x和y的值就可以互换了。


•只打印3.1415926小数点后两位

In [17]: print "%f" %(3.1415926)
3.141593
In [18]: print "%.2f" %(3.1415926)
3.14

•以3位数打印出2

In [20]: print "%.3d" %(2)
002

•打印2的时候以1400开头

In [19]: print "%d" %(2)
2
In [23]: print "1400%d" %(2)
14002


•可变数据类型:list(列表)、dict(字典)、set(集和)

•不可变数据类型:数字、字符串、元组


•有序数据类型:字符串、列表、元组

•无序数据类型:数字、字典,集和

#无序的数据类型,增加一个数据,这个数据不一定会排在最后
#有序的数据类型,每增加一个数据,这个数据都会被排到最后

元组:带了紧箍咒的列表

元组和列表不同在于元组为不可变数据类型,他没有append等方法,存储数据更安全

一、创建:

tu = (1,2,3,4)

注意:单个元组定义必须在后面加逗号,如tu = (1,)

工厂方法:t= tuple([1,2,3])

二、元组的操作

1.元组也属于序列,支持索引、切片、拼接、重复、成员操作符

Screenshot from 2017-12-26 01:25:15.png

2.元组特性

• 对元组分别赋值,引申对多个变量也可通过元组方式分别赋值

Screenshot from 2017-12-26 01:28:10.png

3.删除元组

Screenshot from 2017-12-26 01:26:33.png

三、元组的方法

• 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',[1,2,3])
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([1,3,4])
        在集合中添加多项,跟的参数应该是可迭代类型

三、集和的删除

• s.remove(1)
        删除集合中指定的元素
• s.pop()
        随机删除集合中的某个元素,并返回删除的元素

四、集和的其他操作

• len(s)
        显示集合set的长度
• "1" in s
        检测某元素是否为集合s的成员,返回布尔值

• s.copy()
        集合的浅拷贝,此处不深入研究,后面会说
• s.clear()
        清空集合的所有元素

字典

一、字典的定义

字典不支持索引、切片

字典里面的key不能重复,但是value没有任何限制

• 简单字典创建

Screenshot from 2017-12-26 01:32:37.png

• 使用工厂函数创建:

Screenshot from 2017-12-27 04:00:23.png

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

Screenshot from 2017-12-26 01:33:20.png

Screenshot from 2017-12-27 04:04:00.png

题目:

生成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访问

Screenshot from 2017-12-26 01:34:25.png

• 循环遍历访问

Screenshot from 2017-12-26 01:35:09.png

三、字典key-value的添加

• dic[key] = value
    通过这个操作,我们会发现字典是无序的数据类型

Screenshot from 2017-12-26 01:36:53.png

四、字典的删除

• dic.pop(key)
根据key值删除字典的元素;
• dic.popitem()
随机删除字典元素,返回(key,value)
• dic.clear()
删除字典中的所有元素
• del dic
删除字典本身

五、字典的常用方法

• dict.get()
如果key存在于字典中,返回对应value值
• dic.keys()
返回字典的所有key值
• dict.has_keys()
字典中是否存在某个key值