二周一次课(10月23日)
一、学习python 列表的常用方法
列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等任何东西加入到列表中,其中的元素之间没有任何关系。列表也是自带下标的,默认也是从0开始。
l = ['a', 'b', 'c', 'abc', 1, 2, 3]print type(l)
print(dir(l))
append,list的末尾增加一个元素
l = ['a', 'b', 'c', 'abc', 1, 2, 3]print(l)l.append('hello')print(l)
结果:
['a', 'b', 'c', 'abc', 1, 2, 3]['a', 'b', 'c', 'abc', 1, 2, 3, 'hello']
pop,末尾删除一个list元素
l = ['a', 'b', 'c', 'abc', 1, 2, 3]l.pop()print(l)
结果:
['a', 'b', 'c', 'abc', 1, 2]
index,符合条件的list下标
l = ['a', 'b', 'c', 'abc', 1, 2, 3]print(l.index('abc'))
结果:
3
insert,插入list中一个元素
格式:insert(index,object)--insert object before index
l = ['a', 'b', 'c', 'abc', 1, 2, 3]l.insert(2, '321')print(l)
结果:
['a', 'b', '321', 'c', 'abc', 1, 2, 3]
remove,删除list一个元素
格式:L.remove(value) --remove first occurrence of value.
l = ['a', 'b', 'c', 'abc', 1, 2, 3]l.remove('abc')print(l)
结果:
['a', 'b', 'c', 1, 2, 3]
reverse,list反序
l = ['a', 'b', 'c', 'abc', 1, 2, 3]l.reverse()print(l)
结果:
[3, 2, 1, 'abc', 'c', 'b', 'a']
sort,对list进行排序
l = ['a', 'b', 'c', 'abc', 1, 2, 3]l.sort()print(l)
结果:
[1, 2, 3, 'a', 'abc', 'b', 'c']
列表切片:
字符串、列表、元组在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以用切片(slice)去存取它们的任意部分。我们可以把序列想象成一个队列,我可能需要前面三位。后面三位、或者从第三位后的四位、或者隔一个取一个等,我们用切片操作符来实现上述要求。
切片操作符在Python中的原型是:
[start:stop:step]
即:[开始索引:结束索引:步长值]
开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值得索引为0,最后一个为-1
结束索引:切片操作符将取到该索引为止,不包含该索引的值。
步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取。如果为负,则表示从右向左取。步长值不能为0.
l = ['a', 'b', 'c', 'abc', 1, 2, 3]print(l[1:5:2])
结果:
['b', 'abc']
二、学习python的集合和方法
元组tuple是不可变的list,tuple和list有些差别
1.Tuple的定义形式
t = ('a', 'b', 'c', 'abc', 1, 2, 3)print(dir(t))print(type(t))
tuple唯一和list的区别是[]变成了(),其他没有什么变化,tuple不能增加和减少,它本身自己的方法很少,只有count和index两个方法,其他的list方法都不可用。
2.Tuple单个元素
Tuple在表示单个元素的时候,是比较特别的,我们需要特别注意,要不然很容易犯一个错误,即:
a = (1,)b = 'abc'print(type(a))print(type(b))
结果:
<type 'tuple'><type 'str'>
由上面的例子可以知道,tuple在表示单个元素的时候,必须用,进行分离,否则python解析器不会认为是元组。
3.Tuple的方法
'count',统计某个元素的个数
t = ('a', 'b', 'c', 'abc', 1, 2, 3)print(t.count('a'))
结果是:
1
'index',返回某个元素的下标
T.index(value,[start, [stop]]) -> integer -- return first index of value.
t = ('a', 'b', 'c', 'abc', 1, 2, 3)print(t.index('abc'))
结果是:
3
三、学习python的字典和方法
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中,字典赋值有三种方式:
k = {'name': 'wan yang', 'age': '25', 123: 'abc'}d = dict(a=1, b=2, c=3)d = dict([('name', 'yang'), ('age', 20)])
字典有很多常用的方法:
get() 获得key对应的value值
k = {'name': 'wan yang', 'age': '25', 123: 'abc'}print(k.get('name'))
结果:
wan yang
setdefault 通过给定的key,查找对应的value,如果给定的可以在字典中无,则返回None,同时在字典中增加'test': None键值对
k = {'name': 'wan yang', 'age': '25'}k.setdefault('height', '170')k.setdefault('tel')print(k)
结果:
{'age': '25', 'tel': None, 'name': 'wan yang', 'height': '170'}
keys()、values() 以列表的形式返回字典的所有键或者值
k = {'name': 'wan yang', 'age': '25', 123: 'abc'}print(k)print(k.keys())print(k.values())
{'age': '25', 123: 'abc', 'name': 'wan yang'}['age', 123, 'name']['25', 'abc', 'wan yang']
iteritems()
功能:返回字典所有元素的迭代器
iterkeys()
功能:返回字典所有keys的迭代器
itervalues()
功能:返回字典所有values的迭代器
d = {'name': 'Tom', 'age': '22'}for i in d.iteritems(): print ifor i in d.iterkeys(): print ifor i in d.itervalues(): print i
结果:
('age', '22')('name', 'Tom')agename22Tom
update() 更新增加字典的键值
d = {'name': 'Tom', 'age': '22'}d2 = {'height': 170, 'tel': 110}d.update(d2)print d
结果:
{'age': '22', 'tel': 110, 'name': 'Tom', 'height': 170}
fromkeys 用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
d = [1, 2, 3]dict = {}dict = dict.fromkeys(d)print dict # {1: None, 2: None, 3: None}dict = dict.fromkeys(d, 'xiaodeng') # xiaodeng为默认值print dict # {1: 'xiaodeng', 2: 'xiaodeng', 3: 'xiaodeng'}
结果:
{1: None, 2: None, 3: None}{1: 'xiaodeng', 2: 'xiaodeng', 3: 'xiaodeng'}
zip 把两个列表合并成一个字典
l = ['name', 'age']l1 = ['Tom', '22']print(zip(l, l1))
结果:
[('name', 'Tom'), ('age', '22')]
对字典的增加操作
d = {'name': 'Tom', 'age': '22'}d['sex'] = 'man'print d
结果:
{'age': '22', 'name': 'Tom', 'sex': 'man'}
对字典的修改操作
d={'name': 'Tom', 'age': '22'}d['age'] = '11'print d
结果:
{'age': '11', 'name': 'Tom'}
pop() 删除key:value对
k = {'name': 'wan yang', 'age': '25', 123: 'abc'}k.pop(123)print(k)
结果:
{'age': '25', 'name': 'wan yang'}
对字典进行排序:
按照value进行排序
mm = dict(a=1, b=10, c=3, d=9)print sorted(mm.iteritems(), key=lambda d:d[1], reverse=True)
[('b', 10), ('d', 9), ('c', 3), ('a', 1)]