列表
list=[val1,val2,val3,val4]
- 列表中每一個(gè)元素是可變的;
- 列表中每個(gè)元素是有序的,每個(gè)元素都有相應(yīng)的位置;
- 列表可以容納python中任何對(duì)象
查詢(xún)(只接受位置索引[0])
Weekday = ['Monday','Tuesday','Wednesday','Thursday','Friday']#創(chuàng)建一個(gè)列表
print(Weekday[0])#索引0位置的元素
添加insert(插入一個(gè)元素)extend(添加多個(gè)元素)
fruit = ['pineapple','pear']
fruit.insert(1,'grape')#列表中插入一個(gè)元素用.insert()方法
print(fruit)
fruit[0:0] = ['Orange']#也可以用這種方式插入
print(fruit)
刪除remove()或者del關(guān)鍵字實(shí)現(xiàn)
fruit = ['pinapple','pear','grape']
fruit.remove('grape')#用.remove()方法實(shí)現(xiàn)刪除
print(fruit)
del fruit[0:2]#還可以用del關(guān)鍵字來(lái)刪除
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'])#報(bào)錯(cuò)可得知列表索引必須是整數(shù)或者是片,而不是字符串即用元素索引出對(duì)應(yīng)的位置
字典(鍵值對(duì))
dict={key:val1,key2:val2}
- 字典中的數(shù)據(jù)必須以鍵值對(duì)的形式出現(xiàn);
- 邏輯上,鍵不能重復(fù),但值可以;
- 字典中的鍵是不可變的,不可修改;值是可以變,修改的,可以是任何對(duì)象;
字典可以添加NASDAQ_code[‘YOU’]=’Youku’或者.update()
NASDAQ_code = {'BIDU':'Baidu','SINA':'Sina'}
NASDAQ_code['YOKU'] = 'Youku'#字典添加一個(gè)用法
print(NASDAQ_code)
NASDAQ_code.update({'FB':'Facebook','TSLA':'Tesla'})#字典添加多個(gè)用.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]#元組的索引和列表類(lèi)似
集合
set={val1,val2,val3,val4}
集合元素?zé)o序,不重復(fù),用來(lái)判斷從屬關(guān)系
集合可添加、刪除,集合運(yù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)方法實(shí)現(xiàn)列表元素排序
num_list = [6,2,7,4,1,3,5]
print(sorted(num_list))#sorted()分類(lèi)整理函數(shù)
sorted(num_list,reverse=True)#默認(rèn)參數(shù)reverse為false,現(xiàn)在實(shí)現(xiàn)的倒序
for a,b in zip(num,str)倆個(gè)列表
num = [6,2,7,4]
str = ['a','b','c','d']
for a,b in zip(num,str):
print(b,'is',a)#很容易格式錯(cuò)誤expected an indented block期待在約束塊中
推導(dǎo)式
10個(gè)元素裝入列表
普通寫(xiě)法
a = []
for i in range(1,11):
a.append(i)#用.append()方法+for循環(huán)實(shí)現(xiàn)1到10的加入列表
print(a)
列表遞推式
b = [i for i in range(1,11)]#用列表解析式實(shí)現(xiàn)1到10的加入列表
print(b)
為了深刻立即list = [item for item in iterable]舉幾個(gè)栗子吃吃就知道了
a = [i**2 for i in range(1,10)]#i**2為我們要放在列表中的元素,i的取值范圍為1到9,既可以預(yù)見(jiàn)結(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']#字符串按小到大排列
字典的遞推式實(shí)現(xiàn)
d = {i:i+1 for i in range(4)}#字典中鍵從0到3的一個(gè)添加
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()方法實(shí)現(xiàn)字母小寫(xiě)變大寫(xiě)的功能
循環(huán)列表時(shí)獲取元素索引
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
for num,letter in enumerate(letters):#用enumerate()枚舉函數(shù),將列表的元素位置枚舉出來(lái)
print(letter,'is',num + 1)
綜合項(xiàng)目:詞頻率統(tǒng)計(jì)
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)點(diǎn)符號(hào),并把首字母改寫(xiě)成小寫(xiě)
words_index = set(words)#將列表轉(zhuǎn)換成集合,并把其中的重復(fù)去掉
counts_dict = {index:words.count(index) for index in words_index}#創(chuàng)建一個(gè)以單詞為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é)的都蠻實(shí)用的
萌新求多多支持_