总结一下部分内容:
一、数据结构
1)序列:列表[]可修改、元祖()不可修改、字符串(是一个字符组成的序列)
1、分片:a[开始 : 结束 : 步长]
>>>num=[0,1,2,3,4,5,6,7,8,9]
>>>num[3:6]
原样复制:y=num[:]
[3,4,5]
2、序列相加(即连接):相同类型才行
>>>[1,2,3] + [4,5,6]
[1,2,3,4,5,6]
>>>[1,2,3] + 'world'报错
3、乘法:数字a乘序列,即序列重复a次
>>> 'ab' * 3
'ababab'
>>>[0]*2
[0,0]
注:初始化一个长度为10的列表:用None
>>>seq=[None] * 10
4、成员资格:检查某个值是否在序列中,用in
>>>per='qwer'
>>>'w' in per
True
5、内建函数:序列的 len、min、max
6、计数方式 从左边:0,1,2... 从右边:-1,-2,-3...
2)列表list:可以修改
列表操作:
1、元素赋值:索引标记特定位置元素
>>>x = [1 , 1 , 1 ]
>>>x[1] = 2
>>>x
[ 1 , 2 , 1 ]
2、删除元素:del语句,也可用于字典和其他
>>>del x[1]
>>>x
[ 1 , 1 ]
3、分片赋值
>>>name = list( ' perl ' )
>>>name
[ 'p' , 'e' , 'r' , 'l' ]
>>>name[2:] = list( 'ar' )
>>>name
[ 'p' , 'e' , 'a' , 'r' ]
注:也可通过分片来插入元素
>>>num = [1,4]
>>>num[1:1]=[2,3]
>>>num
[1,2,3,4]
还可通过分片删除元素
>>>num[1 , 3]=[]
>>>num
[1 , 4]
4、list函数:由字符串创建列表,也适用于其他序列
>>>list( 'hello' )
[ 'h' , 'e' , 'l' , 'l' , 'o' ]
列表方法:
1、append:列表末尾(即特定位置)追加新对象,注意是直接修改原来的列表(而非返回一个修改过的新列表)
>>>lst = [1,2,3]
>>>lst.append(4)
>>>lst
[1,2,3,4]
2、count:统计元素在列表中出现的个数
>>>x = [[1 , 2] , 1 , 1 , [2 , 1 , [1 , 2]]]
>>>x.count(1)
2
>>>x.count([1 , 2])
1
3、extend:用新列表扩展原有列表,即修改了被扩展序列
>>>a=[1,2,3]
>>>b=[4,5,6]
>>>a.extend(b)
>>>a
[1,2,3,4,5,6]
不同于 连接 操作:返回一个全新列表
>>>a=[1,2,3]
>>>b=[4,5,6]
>>>a + b
[1,2,3,4,5,6]
>>>a
[1,2,3]
4、index:找到第一个匹配的索引位置
index:对象插入列表
pop:列表中移除一个元素,再返回他;可指定某个,默认移除最后一个
remove:移除列表中的第一个匹配项
reverse:列表元素反向存放
sort:排序,改变的是原列表,返回值为空值
3)元祖():不可变
1、创建:逗号或圆括号隔开即可,注意只有一个值也要加逗号
>>>1,2,3
(1 , 2 , 3)
>>>(1 , 2 , 3)
(1 , 2 , 3)
>>>4 ,
(4 , )
2、tuple函数:类似list,把序列参数转换成元祖
>>>tuple( 'abc' )
('a' , 'b' , 'c')
3、元祖基本操作:创建、访问、分片
>>>x = 1,2,3
>>>x[1]
2
>>>x[0:2]
(1 , 2)
4)字符串:不可变
字符串格式化简版,一般用元祖
>>>format = "hello ,%s . %s enough!"
>>>value =('world' , 'hot')
>>>print format % value
hello ,world . hot enough!
......
字符串方法;
1、find:在一个字符串中查找字串,返回最左端索引
2、join:连接序列元素,被连接的必须都要是字符串
>>>seq = ['1' , '2' , '3' , '4']
>>>seee='+'
>>>seee.join(' seq ')
'1+2+3+4+5'
>>>dirs= '' , 'usr' , 'bin' , 'env'
>>>'/'.join(dirs)
'/usr/bin/env'
3、.lower()返回字符串小写字母版本
.replace(a,b)把其中的a字符串用b代替
4、.splite()是join的逆方法
......
5)字典:映射结构(当索引不好用时着重考虑),键-值对
其中,键可以是数字、字符串、甚至元祖
1、创建:
直接创建
phonebook = {'aaa' : '1234' , 'bbb' : '1244' }
函数创建:dict函数
>>>item = [('name' , 'aaa') , ('age' , 42)]
>>>d = dict(item)
>>>d
{'age' : 42 , 'name' : 'aaa'}
>>>d['name']
'aaa'
或通过函数参数来创建
>>>d=dict(name='aaa' , age=42)
>>>d
{'age' : 42 , 'name' : 'aaa'}
2、基本操作:
len(d)键值对数量
d[k] 键k上对应的值
d[k]=v 赋值,将值v与键k关联
del d[k] 删除键为k的项
k in d 检查d中是否有键为k的项,注意查找的是键(区别 v in l ,l为列表查找的是列表的值,而不是索引)
3、强大优点:1 键可以是任意不可变类型;2 可以直接关联
>>>x= []
>>>x[42] = 'happy' 报错,必须要初始化x形如 [None] * 43 初始化x才行
而字典就可以:
>>>x={}
>>>x[42] = 'happy'
>>>x
{42 : 'happy'}
4、字符串格式化使用
>>>phonebook
{'aaa' : '1234' , 'bbb' : '1246' , 'ccc' : '6897'}
>>>"bbb's phone number is %(bbb)s" % phonebook
"bbb's phone number is 1246"
5、方法
1)clear() 清空
2)copy() copy后,替换值原字典不会改变,但原地修改(如remove()),原始字典会改变(浅复制)
避免方法:深复制(引入函数):>>>from copy import deepcopy ...
3)fromkeys() 给定键建立新的字典
>>>{}.fromkeys(['name' , 'age'])
{'age' : None , 'name' : None}
4)get(),访问字典不存在项时返回None值,其他跟普通字典查询(项为空时会报错)一样
>>>d = {}
>>>print d.get('name')
None
还可用于替换值
>>>d.get('name' , 'saad')
'saad'
5、has_key() 检查是否有对应的键
>>>d = {}
>>>d.has_key('name')
false
6、items和iteritems(返回迭代器):将字典各项以列表形式返回,返回时顺序随机
keys和iterkeys(返回迭代器): 将字典中的键,以列表形式返回
>>>d={'aaa' : '1234' , 'bbb' : '4567'}
>>>d.items()
[('bbb' , '4567') , ('aaa' , '1234')]
7、pop 获得某键对应的值,并将键值对从字典移除
>>>d = {'x' : 1 ,'y' : 2}
>>>d.pop('x')
1
>>>d
{'y' : 2 }
8、popitem() 类似list.pop()(弹出最后一个元素),但是弹出随机的项,因为字典没有顺序概念
setdefault() 类似于get()方法
update() 用一个字典更新另外一个字典
values()和itervalues()(返回迭代器):返回字典中的值,以列表形式,可以重复
二、语句
1、导入:from 模块 import 函数
import 函数 as 别名
2、条件语句
1)简单形式 if...else... if...elif...else... if中嵌套if
if A :
...
else :
...
2)is 判断同一性,是否是同一个对象
>>>x = y = z = [1,2,3]
>>>z = [1,2,3]
>>>x is y
True
>>>x is z
False
3)in 成员资格
name=raw_input('dtgabdud')
if 't' in name:
...
else:
...
4)比较 > <
3、循环语句
1)while A :
...
2)for a in b :
...
3)for num in range(1,4) :
...