數(shù)據(jù)結(jié)構(gòu)
'''列表的三個(gè)特性
1、列表的元素可以改變
2、列表的元素是有序的
3、列表可以容納任何對(duì)象
'''
fruit = ['pineapple','pear']
fruit.insert(1,'grape')? #增加元素
print(fruit)
fruit.remove('pear')? #刪除元素
print(fruit)
fruit[0] = 'bananae'? #改元素
print(fruit)
運(yùn)行結(jié)果:
['pineapple', 'grape', 'pear']
['pineapple', 'grape']
['bananae', 'grape']
'''
字典特征:
1、字典中數(shù)據(jù)必須是以鍵值對(duì)的形式出現(xiàn)的
2、邏輯上講,鍵是不能重復(fù)的,而值可以重復(fù)
3、字典中的鍵是不可以變的,也就是說不能修改;而值是可以變的,可修改的,可以是任何對(duì)象
'''
Dic_code={'bidu':'baidu','sina':'sina'}
print(Dic_code)
Dic_code['youku'] ='youku'#增加元素
print(Dic_code)
Dic_code.update({'fb':'facebook','tsla':'tsla'})#增加多個(gè)元素
print(Dic_code)
del Dic_code['youku']#刪除元素
print(Dic_code)
運(yùn)行結(jié)果:
{'sina': 'sina', 'bidu': 'baidu'}
{'sina': 'sina', 'bidu': 'baidu', 'youku': 'youku'}
{'sina': 'sina', 'bidu': 'baidu', 'tsla': 'tsla', 'fb': 'facebook', 'youku': 'youku'}
{'sina': 'sina', 'bidu': 'baidu', 'tsla': 'tsla', 'fb': 'facebook'}
'元組,可以理解為固定版的列表,因?yàn)?b>元素值不可變。但是可以索引查看'
letters=(1,2,3)
print(letters)
運(yùn)行結(jié)果:
(1, 2, 3)
小技巧:如果要改變?cè)M的值,可以把元組轉(zhuǎn)換為列表,在列表中改完后,再轉(zhuǎn)換回元組。
'集合'\
'1、每個(gè)集合中的元素是無序的、不重復(fù)的任意對(duì)象'\
'2、通過集合判斷數(shù)據(jù)的從屬關(guān)系'\
'3、通過集合把數(shù)據(jù)結(jié)構(gòu)中重復(fù)的元素減掉'
例:
a_set={1,2,3}
a_set.add(4)#集合增加元素
print(a_set)
a_set.discard(2)#集合刪除元素
print(a_set)
運(yùn)行結(jié)果:
{1, 2, 3, 4}
{1, 3, 4}
'數(shù)據(jù)結(jié)構(gòu)技巧'
技巧1:
num_list= [5,2,4,3,1]
print(sorted(num_list),num_list) ?#對(duì)列表排序(不改變列表順序,返回排序結(jié)果)
print(sorted(num_list,reverse=True)) #對(duì)列表逆向排序
運(yùn)行結(jié)果:
[1, 2, 3, 4, 5] [5, 2, 4, 3, 1]
[5, 4, 3, 2, 1]
技巧2:
'列表解析式'
例:
import time
a= []
t0=time.clock()
foriinrange(1,20000):
a.append(i)
print(time.clock()-t0,'seconds process time')
t0=time.clock()
b= [i for i in range(1,20000)] ?#
print(time.clock()-t0,'seconds process time')
運(yùn)行結(jié)果:
0.004409208407899885 seconds process time
0.0010066217236152017 seconds process time
技巧3:
'字典解析式'
d={i:i+1 for i in range(4)}
print(d)
g={i:j.upper() for i,j in zip(range(1,6),'abcde')}
print(g)
運(yùn)行結(jié)果:
{0: 1, 1: 2, 2: 3, 3: 4}
{1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E'}
技巧4:
'循環(huán)列表時(shí)獲取元素的索引'
letters= ['a','b','c','d','e']
for num,letter in enumerate(letters):
print(letter,' is ', num)