几种变量:


list:  classmates = ['Michael', 'Bob', 'Tracy']
tuple: classmates = ('Michael', 'Bob', 'Tracy')
dict: d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
set: s = set([1, 2, 3])




list



变量classmates就是一个 list。

len()函数可以获得 list 元素的个数:

>>> len(classmates)

用索引来访问 list 中每一个位置的元素

>>> classmates[0]

len(classmates) - 1 ,如果要取最后一个元素,除了计算索引位置外,还可以用

-1做索引,直接获取最后一个元素,

-2


list 元素也可以是另一个 list,比如:


>>> s = ['python', 'java', ['asp', 'php'], 'scheme']


 



追加





list 是一个可变的有序表,所以,可以往 list 中追加元素到末尾:


>>> classmates.append('Adam')


插入





比如索引号为1的位置:


>>> classmates.insert(1, 'Jack')


删除 list 末尾的元素




pop()方法:


>>> classmates.pop()


删除




pop(i)方法,其中i是索引位置:


>>> classmates.pop(1)


替换





可以直接赋值给对应的索引位置:


>>> classmates[1] = 'Sarah'


list排序:





>>> a = ['c', 'b', 'a'] 
>>> a.sort() 
>>> a 
['a', 'b', 'c']




切片

取前 3 个元素:>>> L[0:3] ,如果从0开始也可以省略0: >>> L[:3]



下标循环

使用enumerate可以把list变为索引-元素对

for i, value in enumerate(['A', 'B', 'C']): 
    print i, value







Tuple




另一种有序列表叫元组:tuple。tuple 和 list 非常类似,但是 tuple 一旦初始化就不能修改


“可变的”tuple:




>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])








Dict







>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} 
>>> d['Michael']

也可以通过key设定值>>> d['Adam'] = 67



判断key是否存在




(1)>>> 'Thomas' in d

(1)通过 dict 提供的 get 方法,如果 key 不存在,可以返回 None,或者自己指定的 value:

>>> d.get('Thomas') 
>>> d.get('Thomas', -1) 
-1




删除key




pop(key)方法,对应的 value 也会从 dict 中删除:


>>> d.pop('Bob')


dict 是用空间来换取时间的一种方法。正确使用 dict 非常重要,需要牢记的第一条就是 dict 的 key 必须是不可变对象。


这是因为 dict 根据 key 来计算 value 的存储位置,如果每次计算相同的 key 得出的结果不同,那 dict 内部就完全混乱了。这个通过 key 计算位置的算法称为哈希算法(Hash)。要保证 hash 的正确性,作为 key 的对象就不能变。在 Python 中,字符串、整数等都是不可变的,因此,可以放心地作为 key。而 list 是可变的,就不能作为 key.





输入dict并遍历:







d={} 
i=0 
while i<=1: 
  name=raw_input('hey ') 
  value=raw_input('value') 
  d[name]=value 
  i=i+1 
for i in d:    #两种遍历方法
    print "d[%s]=" % i,d[i] 

for k,v in d.iteritems(): 
    print k,v










set

set 和 dict 类似,也是一组 key 的集合,但不存储 value。由于 key 不能重复,所以,在 set 中,没有重复的 key。

要创建一个 set,需要提供一个 list 作为输入集合:

>>> s = set([1, 2, 3])

( 传入的参数[1, 2, 3]是一个 list , 重复元素在 set 中自动被过滤)

添加key:

通过add(key)方法可以添加元素到 set 中,>>> s.add(4)

删除key:

通过remove(key)方法可以删除元素,>>> s.remove(4)

交集、并集:
>>> s1 = set([1, 2, 3]) 
>>> s2 = set([2, 3, 4]) 
>>> s1 & s2 
set([2, 3]) 
>>> s1 | s2 
set([1, 2, 3, 4])






##迭代