一、列表学习:
L1=[] 一个空的列表
L2=[0,1,2,3] 四项:索引0到3
L3=['abc',['fuck','you']] 嵌套的子列表
L[i] 索引
L[i][j] 索引的索引
L[i:j] 分片
len(L) 求长度
L1+L2 合并
L2*4 重复
for x in L 迭代
3 in L 判断成员关系
L.append(4) 追加新的索引
L.extend([5,6,7]) 在默认追加新索引,可针对多个列表进行合并(会产生新的对象)
L.sort() 排序
L.index(1) 搜索
L.insert(1,'super') 索引1位置,插入super元素
L.reverse() 反转
del L[k] 删除k位置的元素
del L[k:j]
L.pop() 删除最后一个元素
L.remove('super') 删除super元素
L.[k:j]=[]
L.[k]='super' 索引赋值
L.[k:j]=['super','python','py'] 分片赋值
range(4) 生成整数列表
L=[x**2 for x in range(5)] 列表解析
二、字典学习:
列表和字典都是内置数据结构类型,列表是根据偏移量来读取,字典则是通过键来读取;列表是有序,字典是无序;
因此字典可以取代许多搜索算法和数据结构;任意对象的无序集合,可变长、异构、任意嵌套;可变映射类型;
对象引用表(哈希表)
D1={} 空字典
D2={'spam':2,'eggs':3} 两项目字典
D3={'food':{'ham':1,'egg':2}} 嵌套
D2['eggs'] 以键进行索引运算
D3['food']['ham']
D2.has_key('eggs');'eggs' in D2 成员关系测试
D2.keys() 键列表
D2.values() 值列表
D2.copy() 复制
D2.get(key,default) 默认
D2.update(D1) 合并
D2.pop(key) 删除
len(D1) 长度(存储的元素数目)
D2[key]=42 新增/修改键
del D2[key] 删除键
其他构造技术
D4=dict.fromkeys(['a','b'])
D5=dict(zip(keyslist,valslist))
D6=dict(name='Bob',age=42)
字典写法:
(1):{'name':'larry','age':'22'}
(2):动态创建字典一个字段
D={}
D['name']='larry'
D['age']=22
(3):dict(name='larry',age=22) 代码少,但是键必须都是字符串才行
(4):dict([('name','mel'),('age',45)]) 程序运行时把键和值逐步建成序列
python的字典接口后续学习........
python例子:
用于稀疏数据结构,如下表示一个三维数组
>>> Matrix={}
>>> Matrix[(2,3,4)]=88
>>> Matrix[(7,8,9)]=99
>>> x=2;y=3;z=4
>>> Matrix[(x,y,z)]
88
>>> Matrix
{(2, 3, 4): 88, (7, 8, 9): 99}
>>>
>>> table={'python':'Guido van Rossum',
... 'perl':'Larry wall',
... 'Tcl':'John Ousterhout'}
>>> language='python'
>>> creator=table[language]
>>> creator
'Guido van Rossum'
>>> for lang in table.keys():
... print lang,'\t' ,table[lang]
...
python Guido van Rossum
Tcl John Ousterhout
perl Larry wall
字典键值初始化:
>>> dict={'a':55,'b':99,'c':101}
>>> dict
{'a': 55, 'c': 101, 'b': 99}
>>> dict.fromkeys(['a','b','c'],0)
{'a': 0, 'c': 0, 'b': 0}