Python学习笔记(4) —各种“数组”
Python里是没有数组的但是有几种其他类型的“数组”。
list
list叫列表,是python内置的一种数据类型,可以表示一组有序的集合。
>>> letters = ['a','b','c','d']
>>> letters
['a','b','c','d']
既然是有序那么代表list里的元素是有排列顺序的。
>>> letters = ['a','b','c','d']
>>> letters[0]
'a'
>>> letters[1]
'b'
>>> letters[2]
'c'
>>> letters[3]
'd'
也可用负数来调用
>>> letters = ['a','b','c','d']
>>> letters[-1]
'd'
>>> letters[-2]
'c'
>>> letters[-3]
'b'
>>> letters[-4]
'a'
len()函数可以获得list的元素个数:
>>> len(letters)
4
列表的append()方法可以向列表末尾处添加一个元素:
>>> letters = ['a','b','c','d']
>>> letters.append('e') #从右边添进去一个元素
>>> letters
['a','b','c','d','e']
列表的pop()可以删除列表末尾的元素:
>>> letters = ['a','b','c','d','e']
>>> letters.pop() #从右边删除一个元素
'e'
>>> letters
['a','b','c','d']
pop(number)也可以删除指定位置的元素:
>>> letters = ['a','b','c','d','e']
>>> letters.pop(0)
'a'
>>> letters
['b','c','d','e']
list里的元素类型可以不同:
>>> L = ['Apple', 123, ['a','b'], True]
>>>len(L)
4
tuple
tupie是另一种有序元组,和list不一样的是tuple经过初始化后里面的元素不可再改变。
初始化tuple:
>>> letters = ('a','b','c','d')
>>> letters
('a','b','c','d')
##dict
dict在Python中被称为字典。在字典中采用 key-value 储存方式,每个key对应着一个value,这种储存方式在查找的时候速度特别快。
>>> dic ={'a':1,'b':2,'c':3,'d':4}
>>> dic['a']
1
json越来越流行,通过python获取到json格式的字符串后,可以通过eval函数转换成dict格式:
>>> a='{"name":"yct","age":10}'
>>> eval(a)
{'age': 10, 'name': 'yct'}
由于这种特性的存在所以字典中的key具有唯一性。
set
set和dict类似,但是set中只有key没有value。
>>> s = set([1,1,2,2,3,3])
>>> s
{1,2,3}
##deque
Deque模块是Python标准库collections中的一项。它提供了两端都可以操作的序列, 这意味着, 你可以在序列前后都执行添加或删除,**所以deque在处理队列任务时更加的高效。**使用deque前首先需要引入collections:
>>> from collections import deque #引入deque
>>> n = deque()
n
>>> deque([])
deque有与list相似的操作:
>>> n =deque()
>>> n.append(1)
>>> n.append(2)
>>> n.append(3)
>>> n
deque([1, 2, 3])
>>> len(n)
3
>>> n[0]
1
>>> n[-1]
3
deque在初始化的时候会把长字符串分割成单个的字符:
>>> n = deque('12345')
>>> len(n)
5
>>> n
deque(['1', '2', '3', '4', '5']) #deque把一长串的字符分割成了多个单字符
deque可以从左边或者右边添加或者删除元素:
>>> n = deque('12345')
>>> n.extendleft([0]) #把一个元素从左边添加进去
>>> n
deque(['0','1', '2', '3', '4', '5'])
>>> n.extend(['6','7','8']) #把一个list从右边添加进去
n
deque(['0','1', '2', '3', '4', '5','6','7','8'])
>>>n.popleft() #从左边删除一个元素
'0'
>>> n
deque(['1', '2', '3', '4', '5','6','7','8'])
>>> n.pop() #从右边删除一个元素
'8'
>>>n
deque(['1', '2', '3', '4', '5','6','7'])