列表
list=[val1,val2,val3,val4]
- 列表中每一個元素是可變的欠拾;
- 列表中每個元素是有序的班巩,每個元素都有相應(yīng)的位置靖秩;
- 列表可以容納python中任何對象
查詢(只接受位置索引[0])
Weekday = ['Monday','Tuesday','Wednesday','Thursday','Friday']#創(chuàng)建一個列表
print(Weekday[0])#索引0位置的元素
添加insert(插入一個元素)extend(添加多個元素)
fruit = ['pineapple','pear']
fruit.insert(1,'grape')#列表中插入一個元素用.insert()方法
print(fruit)
fruit[0:0] = ['Orange']#也可以用這種方式插入
print(fruit)
刪除remove()或者del關(guān)鍵字實現(xiàn)
fruit = ['pinapple','pear','grape']
fruit.remove('grape')#用.remove()方法實現(xiàn)刪除
print(fruit)
del fruit[0:2]#還可以用del關(guān)鍵字來刪除
print(fruit)
替換
fruit[0] = 'Grapefruit'#索引變量被后面賦值
print(fruit)
檢索
periodic_table = ['H','He','Li','Be','B','C','N','O','F','Ne']
print(periodic_table[0])#索引出0位置
print(periodic_table[-2])#索引出-2位置元素
print(periodic_table[0:3])#索引出0谈息、1屯耸、2位置的元素
print(periodic_table[-10:-7])#索引出-10且预、-9蜈项、-8位置的元素
print(periodic_table[-10:])#索引出-10到最后的元素
print(periodic_table[:9])#索引出0到8位置上的元素
print(periodic_table['H'])#報錯可得知列表索引必須是整數(shù)或者是片定硝,而不是字符串即用元素索引出對應(yīng)的位置
字典(鍵值對)
dict={key:val1,key2:val2}
- 字典中的數(shù)據(jù)必須以鍵值對的形式出現(xiàn)瘪菌;
- 邏輯上撒会,鍵不能重復(fù),但值可以师妙;
- 字典中的鍵是不可變的诵肛,不可修改;值是可以變默穴,修改的怔檩,可以是任何對象;
字典可以添加NASDAQ_code[‘YOU’]=’Youku’或者.update()
NASDAQ_code = {'BIDU':'Baidu','SINA':'Sina'}
NASDAQ_code['YOKU'] = 'Youku'#字典添加一個用法
print(NASDAQ_code)
NASDAQ_code.update({'FB':'Facebook','TSLA':'Tesla'})#字典添加多個用.update()方法
print(NASDAQ_code)
刪除del()
del NASDAQ_code['FB']#字典刪除del關(guān)鍵字
print(NASDAQ_code)
索引(只能索引關(guān)鍵詞NASDAO_code[‘YOU’])
NASDAQ_code['TSLA']#字典的索引蓄诽,是用列表的方法索引關(guān)鍵字
但字典不能切片
NASDAQ_code[1:4] # WRONG!字典不能進(jìn)行切片
元組(固定的列表)
tuple=(val1,val2,val3,val4)
不可以添加薛训、刪除÷胤眨可以索引
letters = ('a','b','c','d','e','f','g')#元組的形式(X乙埃,Y)
letters[0]#元組的索引和列表類似
集合
set={val1,val2,val3,val4}
集合元素?zé)o序,不重復(fù)锯岖,用來判斷從屬關(guān)系
集合可添加介袜、刪除,集合運算出吹,但不可以索引
a_set = {1,2,3,4}#創(chuàng)建集合
a_set.add(5)#添加集合元素.add()
print(a_set)
a_set.discard(5)#刪除集合元素.discard()
print(a_set)
數(shù)據(jù)結(jié)構(gòu)的一些技巧
多重循環(huán)
sorted(list)方法實現(xiàn)列表元素排序
num_list = [6,2,7,4,1,3,5]
print(sorted(num_list))#sorted()分類整理函數(shù)
sorted(num_list,reverse=True)#默認(rèn)參數(shù)reverse為false遇伞,現(xiàn)在實現(xiàn)的倒序
for a,b in zip(num,str)倆個列表
num = [6,2,7,4]
str = ['a','b','c','d']
for a,b in zip(num,str):
print(b,'is',a)#很容易格式錯誤expected an indented block期待在約束塊中
推導(dǎo)式
10個元素裝入列表
普通寫法
a = []
for i in range(1,11):
a.append(i)#用.append()方法+for循環(huán)實現(xiàn)1到10的加入列表
print(a)
列表遞推式
b = [i for i in range(1,11)]#用列表解析式實現(xiàn)1到10的加入列表
print(b)
為了深刻立即list = [item for item in iterable]
舉幾個栗子吃吃就知道了
a = [i**2 for i in range(1,10)]#i**2為我們要放在列表中的元素,i的取值范圍為1到9捶牢,既可以預(yù)見結(jié)果為1赃额,4,9...81
c = [j+1 for j in range(1,10)]#2,3,4....10
k = [n for n in range(1,10) if n % 2 ==0]#n為1到9范圍內(nèi)的偶數(shù)
z = [letter.lower() for letter in 'ABCDEFGHIGKLMN']#字符串按小到大排列
字典的遞推式實現(xiàn)
d = {i:i+1 for i in range(4)}#字典中鍵從0到3的一個添加
g = {i:j for i,j in zip(range(1,6),'abcde')}#字典中鍵i從1到5叫确,值j從a到e的組合添加
g = {i:j.upper() for i,j in zip(range(1,6),'abcde')}#.upper()方法實現(xiàn)字母小寫變大寫的功能
循環(huán)列表時獲取元素索引
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
for num,letter in enumerate(letters):#用enumerate()枚舉函數(shù),將列表的元素位置枚舉出來
print(letter,'is',num + 1)
綜合項目:詞頻率統(tǒng)計
import string#引入字符串模塊
path = '/Users/sharymo/Desktop/Walden.txt'
with open(path,'r') as text:
words = [raw_word.strip(string.punctuation).lower() for raw_word in text.read().split()]#去掉前面的標(biāo)點符號芍锦,并把首字母改寫成小寫
words_index = set(words)#將列表轉(zhuǎn)換成集合竹勉,并把其中的重復(fù)去掉
counts_dict = {index:words.count(index) for index in words_index}#創(chuàng)建一個以單詞為key,以頻數(shù)為值的字典
for word in sorted(counts_dict,key=lambda x: counts_dict[x],reverse=True):
print('{} -- {} times'.format(word,counts_dict[word]))#打印整理好的函數(shù)
這次學(xué)的都蠻實用的
萌新求多多支持_