Python学习日志——list、set、tuple、dict
一、list
list形式为用中括号包裹list元素,其中各元素以逗号区分
L=[0,1,2,3,4,5]
对list区元素采用指定下标索引的办法,索引第一位应当为下标0,其下标用中括号包裹
L[0]=0
L[1]=1
除了自左往右顺序的下标表示以外,还可以自右往左,起右边第一位下标为-1,之后为-2,-3,-4等等
L[-1]=5
L[-2]=4
注意下标不能超越list元素容量,否则会报错 IndexError: list index out of range
添加元素用append(),可以在list尾部添加元素
1 L=['Adam','Tom'] 2 L.append('Usher') 3 print(L)
输出:
['Adam', 'Tom', 'Usher']
插入元素用insert(),其用法为insert(index, object),index为元素要插入的下标索引位置
1 L=['Adam','Tom'] 2 L.insert(1,'Usher') 3 print(L)
输出:
['Adam', 'Usher', 'Tom']
删除元素用remove(),用于删除指定值的元素
1 L=['Adam','Tom'] 2 L.remove('Adam') 3 print(L)
输出:
['Tom']
del当不知道元素值但是知道要删除指定索引位置的元素时,del用法与上述方法不一样,如下:
1 L=['Adam','Tom'] 2 del L[1] 3 print(L)
输出:
['Adam']
二、set
set是一个无序且不重复的数组,形式为用set小括号包裹一个list
S=set(['Adam',‘Lisa’,'Usher'])
也可以这样写
L=['Adam',‘Lisa’,'Usher']
S=set(L)
因为是无序所以不能用下标类似S[index]的方式取出对应元素
使用add可以往set添加元素
S.add('Tom')
S中元素为:{'Usher', 'Tom', 'Adam', 'Lisa'}
因为S不重复,所以当
S.add('Adam')
S中元素为:{'Usher', 'Adam', 'Lisa'}
移除元素使用remove()
S.remove('Adam')
S中元素为:{'Usher','Lisa'}
update(list)则可以对set批量添加元素
S.update(['Adam','Tom'])
S中元素为:{'Usher', 'Lisa', 'Adam', 'Tom'}
三、tuple
tuple 与上诉set、list不同,当其初始化之后,就不能再更改,这样一定程度上保证了数据安全性
写法如下
T=('Adam','Tom')
tuple与list一样是有序的,所以同样可以使用下标索引获得指定位置元素,索引用法同list
>>>print(T[0])
输出:
Adam
注意:
虽然tuple的元素不可更改,但是其中元素指向的元素可以更改
如下:
1 T=('a','b',['c','d']) 2 T[-1][1]='e' 3 print(T)
输出:
('a', 'b', ['c', 'e'])
既T[2]本身元素并没有改变,但是T[2]中的list元素中的索引为[1]元素指向从'd'变为'e'。
set因为不可变特性,可以用来定义一些常量,比如星期标识、月份标识等等。
注意:
因为()可以用来表示运算优先,当set中只有一个元素时写法略有不同
1 L=('Adam')
2 print(L)
输出:
Adam
是不是和set有区别,因为这个是有L为‘Adam’,而不是set
当set中只有一个元素时应当采用 (object,) 写法,逗号表示这是一个set而不是采用优先运算的object
1 L=('Adam',)
2 print(L)
输出:
('Adam',)
四、dict
dict采用一种key-value的存储方式。
dict形势如下:
D={
key:value
...
}
其元素获取方式为dict[key]
1 D={'michael':65, 2 'Tom':70, 3 'Adam':90, 4 } 5 print(D['Adam'])
输出:
90
当需要对元素集进行指定一个元素获得时,使用dict是最快的。就像字典一样,dict相当于key就是目录,value即是对应目录的内容,当需要查找时,通过key获得指定value位置便能很快获得对应元素值,而若是使用list,就相当于,对这个字典不通过目录的查找,所以dict在数据量很大的情况下,是很快捷的。但是因为dict为了实现查找速度快,是牺牲了存储空间所致。
如果D[key]中的key并不在D中,就会报KeyError错误
在使用dict时,要记得进行判断
一般采用两种判断方法
通过in判断:
key in dict
若key不存在此dict中,则返回False,反之则返回True
dict本身也提供get方法用于获取元素时判断是否存在此元素
dict.get(key,args)
当key存在时,则返回相应value,反之则返回args,
当args这个参数不存在时:
dict.get(key)
若key不存在则返回None
dict可以通过pop(key)删除元素,准确说弹出元素,pop会返回对应key的value值,当值不存在也会报错KeyError
1 D={'michael':65, 2 'Tom':70, 3 'Adam':90, 4 } 5 print(D.pop('Tom')) 6 print(D)
输出:
70
{'michael': 65, 'Adam': 90}
当想要添加元素或者替换元素时直接使用dict[key]即可
1 D={'michael':65, 2 'Tom':70, 3 'Adam':90, 4 } 5 D['Tom']=85 6 D['Usher']=80 7 print(D)
因为key不重复的特性,替换时相当于直接获得对应元素然后复制,若key不存在时dict[key]会直接生成添加对应key-value
切片
切片我个人的理解是对于有序元素集的索引运用
在此以list举例,tuple相关用法同list一样
用法为索引下标[indexStar:indexEnd:space]
其中indexStart为要取的值的起始下标的第一个位置,indexEnd为要取的值的至多下标位+1,space为每space个位置中取一个值
1 L=[0,1,2,3,4,5,6,7,8,9]
print(L[1:9:2])
输出:
[1, 3, 5, 7]
从下标[1]开始,即元素1,每2个元素取一次值,至多直至下标[9-1]
其中space可以省略,这样就默认space为1
1 L=[0,1,2,3,4,5,6,7,8,9]
print(L[1:9])
输出:
[1, 2, 3, 4, 5, 6, 7, 8]
indexStart和indexEnd也可以省略,当省略indexStart时默认从头元素开始,省略indexEnd时,默认至尾元素
1 L=[0,1,2,3,4,5,6,7,8,9] 2
print(L[:])
输出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
posted on 2018-03-11 21:02 SaltFishYe 阅读(153) 评论(0) 收藏 举报