关于list的三个操作
L.append(); #插入list尾
L.insert(x); #插入list定位
L.pop(x); #出列表
list切片操作
>>> L=[1,2,3,4,5,6,7,8,9,10]
>>> L[0:3]
[1, 2, 3]
>>> L[:] #表示从头取到尾
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> L[::2] #表示每隔两个取一个
[1, 3, 5, 7, 9]
倒叙切片
>>> L[-2:]
[9, 10]
>>> L[:-2]
[1, 2, 3, 4, 5, 6, 7, 8]
>>>
生成列表
range函数
>>> L=range(1,10)
>>> print L
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L1=range(1,10,2)
>>> print L1
[1, 3, 5, 7, 9]
python特有的列表生成式
>>> P1=[x*(x+1) for x in range(1,10)]
>>> print P1
[2, 6, 12, 20, 30, 42, 56, 72, 90]
关于tuple的知识点需要注意的地方: 如果tuple只有一个元素如t=(1);
这样写python会将它识别成括号,这样打印出来的其实是1。所以在单元
素里面要多加一个逗号 如:t=(1,)
关于tuple和list区别:tuple创建之后不能改变如 tuple1[1]=’xxx’是错误的写法;
关于不可变性
>>> t=d=(1,2,3)
>>> id(t)
48090640
>>> id(d)
48090640
>>> t=(2,5)
>>> id(t)
48522120
>>> id(d)
48090640
>>> d
(1, 2, 3)
所以不可变性指的是元组本是不可变得,但是t指向性是可变的
关于dict的操作
d={
‘Adam’: 95,
‘Lisa’: 85,
‘Bart’: 59
}
第一种用法 d[‘Adam’] 第二种用法 d.get(‘Adam’)
更新dict
d['Puak']=80 #更新
d.add(name) #添加
d.remove(name) #删除
d.values() #把dict转换成一个包含所有value的list
d. itervalues()
>>> d={'w':1,'e':2,'r':3}
>>> d.values()
[3, 2, 1]
d.items() #将dict转换为包含tuple的list即[(),(),()]
>>> print d.items()
[('r', 3), ('e', 2), ('w', 1)]
dict三大特点: dict内部是无序的
dict比list查找速度快
dict的key是不可变的 例如:list是可变的,所以不能作为key
set的操作
L=[1,2,3,4,4,]
>>> s=set(L)
>>> print s
set([1, 2, 3, 4])
>>> 1 in s
True
set为无序结合,访问时候用 in
一个简单的例子:
week=set(['mon','tue','wed','the','fri','sat','sum'])
x=input()
if x in week:
print x
else:
print 'err'
set和tuple结合使用的例子
s= set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
print x[0] + ':', x[1]
迭代基本知识
enumerate函数用于索引迭代(所谓的索引大概就是序列号吧,个人理解)
>>> L=[1,2,3,4,5]
>>> s= enumerate(L)
>>> print s
<enumerate object at 0x029433A0>
>>> for index ,shu in s:
print index ,shu
0 1
1 2
2 3
3 4
4 5
>>> for x in L:
print x
1
2
3
4
5
zip函数可以将两个列表合成一个list
>>> L1=[1,2,3,4]
>>> L2=['a','b','c','d']
>>> zip(L1,L2)
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]