周一次课(10月23日)
4.5 学习python列表的常用方法
列表是由一序列特定顺序的元素组成的。可以把字符串,数字,字典以及其他任何东西加入到列表中,其中的元素之间没有任何关系。列表也是自带下标的,默认也是从零开始。
>>> str='abcdefg'
>>> print(list(str))
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>>
append 添加
>>> str='abcdefg'
>>> a=['1','2','3']
>>> a.append(str)
>>> print(a)
['1', '2', '3', 'abcdefg']
>>>
index 查找,类似于find
>>> b=['1','2','3','abc']
>>> print(b.index('abc'))
3
>>>
第一个下标为0,所以abc输出下标为3
insert 插入
>>> b=['1','2','3','abc']
>>> b.insert(2,'zx') //插入到目标下标位
>>> print(b)
['1', '2', 'zx', '3', 'abc']
>>>
pop
>>> b=['1','2','3','abc']
>>> b.pop() //括号内跟下标,不加默认最后一位
>>> print(b)
['1', '2', '3']
>>>
remove 删除
>>> c=['1','000','2','000','3']
>>> c.remove('000') //若有多个相同元素,只会删除第一个
>>> print(c)
['1', '2', '000', '3']
>>>
sort排序
>>> d=['2','a','1','c','0','3','b']
>>> d.sort()
>>> print(d)
['0', '1', '2', '3', 'a', 'b', 'c']
>>>
revers 反序
>>> d=['2','a','1','c','0','3','b']
>>> d.reverse()
>>> print(d)
['b', '3', '0', 'c', '1', 'a', '2']
反向排序
>>> d=['2','a','1','c','0','3','b']
>>> d.sort()
>>> d.reverse()
>>> print(d)
['c', 'b', 'a', '3', '2', '1', '0']
>>>
切片
print(a[start:stop:step]) //起始下标(包含本下标):终止下标(不包含本下标):步长
>>> e=['0','1','2','3','4','5','6']
>>> print(e[3:])
['4', '5','6']
>>> print(e[0:6])
['0', '1', '2', '3', '4', '5']
>>> print(e[0:7:2])
['0', '2', '4', '6']
>>>
4.6 元组 tuple
tuple可以认为是不可变的list,在使用上有些差别
tuple的定义形式为
t=('a','b','c','abc','1','2')
由于Tuple不可更改,所以它能使用的方法只有index和count
tuple单个元素
>>> a=(1)
>>> print(type(a))
<type 'int'>
>>> b=(1,) //单个元素需要加“,”分离,并且不能用“''”单引号
>>> print(type(b))
<type 'tuple'>
>>> c=('1')
>>> print(type(c))
<type 'str'>
>>>
count 统计元素个数
>>> f=('0','0','0','1','2','3','4')
>>> print(f.count('0'))
3
>>>
index 查找元素
>>> f=('0','0','0','1','2','3','4')
>>> print(f.count('0')) //只会查找第一个,若元素不存在会报错
3
>>>
4.7 学习python的字典和方法
字典是一种key:value的这种形式在很多语言中使用,java用map,json等,redis也存在hash等形式。虽然名字不同,但都是key:value的形式。
字典为另一种可变容器模型,并且可存储任意类型的对象。
字典的每个键值(key=>value)对应“:”分隔,每个对之间用“,”分隔,整个字典在{}中,字典赋值有三种方式
k={'name':'zx','age':'18'}
d=dict(a=1,b=2,c=3)
d=dict([('name','zx'),('age',18)])
clear清除
>>>k={'name':'zx','age':'18'}
>>>k.clear()
>>>print(k)
{}
>>>
get 获取
>>> k={'name':'zx','age':'18'}
>>> print(k.get('name'))
zx
>>> print(k.get('address'))
None
>>>
setdefault 设置默认值
不加参数时,setdefault和get的使用十分相像
>>> k={'name':'zx','age':'18'}
>>> print(k.setdefault('name'))
zx
>>> print(k.setdefault('address'))
None
>>>
设置参数后,当对应值不存在时,会自动将设置的参数作为默认值输出
>>> k={'name':'zx','age':'18'}
>>> print(k.setdefault('name','zhangxun'))
zx
>>> print(k.setdefault('address','Beijing'))
Beijing
>>>
keys 获取keys
>>> k={'name':'zx','age':'18'}
>>> print(k.keys())
['age', 'name']
>>>
values 获取值
>>> k={'name':'zx','age':'18'}
>>> print(k.values())
['zx', '18]
>>>
iteritems
这种调用方法更加节约资源,推荐使用
k={‘name’:’zx’,’age’:’18’}
for x,y in k.iteritems() :
… print(x,y)
…
(‘age’, ‘18’)
(‘name’, ‘zx’)
pop 删除key值
>>> k={'name':'zx','age':'18'}
>>> k.pop('name')
'zx'
>>> print(k)
{'age': '18'}
>>>
字典的高级操作
list 加入字典
>>> l = ['a', 'b', 'c', 'd']
>>> m = {} //空字典可以用dict代替
>>> n = m.fromkeys(l, 111) //n=dict.formkeys(l, 111)
>>> print(n)
{'a': 111, 'c': 111, 'b': 111, 'd': 111}
>>>
zip 叠加合并
>>> l1 = ['a', 'b', 'c', 'd']
>>> l2 = ['1', '2', '3', '4']
>>> m = zip(l1,l2)
>>> print(m)
[('a', '1'), ('b', '2'), ('c', '3'), ('d', '4')]
>>>
两个list合并成字典
>>> l1 = ['a', 'b', 'c', 'd']
>>> l2 = [1, 2, 3, 4]
>>> m = dict(zip(l1,l2))
>>> print(m)
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>>
update 将一个字典补充到另一个字典
>>> k={'name':'zx','age':'18'}
>>> m = {'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>> k.update(m)
>>> print(k)
{'a': 1, 'c': 3, 'b': 2, 'name': 'zx', 'age': '18', 'd': 4}
>>>
体会一下这个例子
>>> k={'name':'zx','age':'18'}
>>> m = {'a': 1, 'c': 3, 'b': 2, 'd': 4, 'name': 'zx'}
>>> k.update(m)
>>> print(k)
{'a': 1, 'c': 3, 'b': 2, 'name': 'zx', 'age': '18', 'd': 4}
>>>
对字典进行排序
mm = {‘a’:1,’c’:2,’b’:4,’d’:3 }
print sorted(mm.iteritems(), key = lambda d: d[0], reverse = False) //d[0]以key进行排序 d[1]以value进行排序
[(‘a’, 1), (‘b’, 4), (‘c’, 2), (‘d’, 3)]