@字典和列表详细,看Python学习手册第8章,210页。
1,字典,相对列表,更像json,map映射关系---key,value。 例如:{'food':'spam','taste':'yum'}
(1),基础用法:
D={'spam':2,'eggs':3}
D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
D.has_key(key) #有该键返回TRUE,否则FALSE
D.keys() #返回字典键的列表['eggs', 'spam']
D.values() #输出值,例如这个实例,输出[3, 2],即上边的3和2。
D.items() #输出键加值,[('eggs', 3), ('spam', 2)]
D.update(dict2) #增加合并字典
len(D) #求字典长度
D.pop(key) #删除等
D[kye]=42 #新增/修改,删除键
D.popitem() #得到一个pair,并从字典中删除它。已空则抛异常
D.clear() #清空字典,同del dict
D.copy() #拷贝字典
D.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小)
#第一个大返回1,小返回-1,一样返回0
dictionary的复制
dict1 = dict #别名,加一个变量指向。
dict2=dict.copy() #克隆,即另一个拷贝。
2,列表,类似json数据,只不过它是使用索引存储,而非key,value。 例如:[1,[2,'three'],4]
(1),Python的列表对象是这个语言提供的最通用的序列。列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小。
---不像字符串,其大小是可变的。
(2),http://www.cnblogs.com/feichengwulai/articles/3593693.html 这里边有详细介绍,或者看Python学习手册第98页,也有介绍。
(3),基础用法如下:
---创建列表
sample_list = ['a',1,('a','b')]
---Python 列表操作
sample_list = ['a','b',0,1,3]
---得到列表中的某一个值
value_start = sample_list[0]
end_value = sample_list[-1]
---删除列表的第一个值
del sample_list[0]
---在列表中插入一个值
sample_list[0:0] = ['sample value']
---得到列表的长度
list_length = len(sample_list)
---列表遍历
for element in sample_list:
print(element)
附:python内置类型
1、list:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)
a = ["I","you","he","she"] #元素可为任何类型。
下标:按下标读写,就当作数组处理
以0开始,有负下标的使用
0第一个元素,-1最后一个元素,
-len第一个元 素,len-1最后一个元素
取list的元素数量
len(list) #list的长度。实际该方法是调用了此对象的__len__(self)方法。
创建连续的list
L = range(1,5) #即 L=[1,2,3,4],不含最后一个元素
L = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9]
---list的常用操作方法
L1+L2 #合并列表
L1*3 #返回重复列表
L.append(var) #追加元素
L.insert(index,var) #其中index表示索引号,索引号超出了列表长度的话,就放最后。var是插入值。
L.pop() #返回最后一个元素,并从list中删除之
L.remove(value) #删除第一次出现的该元素
L.count(value) #该元素在列表中出现的个数
L.index(value) #该元素的位置,无则抛异常
L.extend(list) #追加list,即合并list到L上
L.sort() #排序
L.reverse() #倒序
a[1:] #片段操作符,用于子list的提取。a=[7, 6, 5, 2, 1],a[1:]返回结果[6, 5, 2, 1]
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4 #返回结果为[2,2,2,2]
del L[1] #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
3,元组,不可变的列表。 例如:(1,'spam',4,'U')
(1),元组(即常量数组)
可以用list的 [],:操作符提取元素。就是不能直接修改元素。