列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能。 列表方法使得列表可以作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。 用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。如下图所示:
也可以把列表当做队列,队列的特点是先进先出
>>> from collections import deque
>>> queue=deque(['zhangsan','lisi'])
>>> queue
deque(['zhangsan', 'lisi'])
>>> queue.append('wangwu')
>>> queue
deque(['zhangsan', 'lisi', 'wangwu'])
>>> queue.popleft()
'zhangsan'
>>> queue
deque(['lisi', 'wangwu'])
通过上面的代码可以看出,是将列表放入到deque对象中,这样再拿出第一个元素的时候,会涉及到其他元素位置移动变化,
会导致效率较低。
元组和序列
元组由若干逗号分隔的值组成,元组在输出时总是有括号的,以便于正确表达嵌套结构。在输入时可能有或没有括号,但是如果
元组是其他表达式的一部分,括号必须有
>>> tup=1,2,3,4,5,6
>>> type(tup)
<class 'tuple'>
>>>
集合
集合是一个无序不重复元素的集,集合可以用来消除重复元素和关系测试,可以使用‘{}’或者set{}来创建集合,但是创建空集合不能用“{}“,只能使用set{}。因为”{}“是用来创建字典的
>>> coll={'math','chinese','geography','math'}
>>> coll
{'geography', 'chinese', 'math'} #重复的math已经被删除
字典
字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。字典的键是不能xia
相同的,也就是关键字不能相同。类似java的map,以键值对的方式保存
>>> dic={'Math':90,'Chinese':92}
>>> dic
{'Math': 90, 'Chinese': 92}
>>> dic['Chinese']
92
在字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来
>>> for k,v in dic.items():
... print(k,v)
...
Math 90
Chinese 92
同时遍历两个或更多的序列,可以使用 zip() 组合
>>> dic1={'zhansan':3,'lisi':4,'wangwu':5}
>>> dic1
{'zhansan': 3, 'lisi': 4, 'wangwu': 5}
>>> for d1,d2 in zip(dic,dic1):
... print('The subject is {0} The teacher is {1}'.format(d1,d2))
...
The subject is Math The teacher is zhansan
The subject is Chinese The teacher is lisi
要反向遍历一个序列,首先指定这个序列,然后调用 reversed() 函数:
>>> for i in reversed(range(1, 10, 3)): #[1,4,7]
... print(i)
...
7
4
1