貓哥教你寫爬蟲 010--列表,字典,循環

列表list

能夠理解成PHP的數組

數組最大的優勢是方便遍歷(循環)

若是班裏有五十個同窗, 班主任點名字

student1 = '趙麗穎'
student2 = '楊冪'
student3 = '易烊千璽'
student4 = 'Angelababy'
student5 = '邢菲'
student6 = '趙磊'
student7 = '鞠婧禕'
student8 = '關曉彤'
student9 = '謝豪'
student10 = '鄭爽'
student11 = '向華強'
student12 = '鄧倫'
student13 = '迪麗熱巴'
student14 = '雷傑'
student15 = '王麗坤'
student16 = '華晨宇'
student17 = '金晨'
student18 = '葉一茜'
student19 = '吳京'
student20 = '李易峯'
student21 = '景甜'
student22 = '黃璐'
student23 = '陳曉'
student24 = '宋茜'
student25 = '韓雪'
student26 = '朱一龍'
student27 = '朱亞文'
student28 = '賈乃亮'
student29 = '章子怡'
student30 = '張馨予'
student31 = '張雲雷'
student32 = '佟麗婭'
student33 = '劉濤'
student34 = '楊超越'
student35 = '高圓圓'
student36 = '何炅'
student37 = '楊子姍'
student38 = '張鈞甯'
student39 = '古力娜扎'
student40 = '鄧超'
student41 = '易建聯'
student42 = '鄭愷'
student43 = '薩頂頂'
student44 = '靳東'
student45 = '何杜娟'
student46 = '佟大爲'
student47 = '姚明'
student48 = '馬伊琍'
student49 = '吳磊'
student50 = '姚晨'
print(student1+' 在不在?')
print(student2+' 在不在?')
print(student3+' 在不在?')
print(student4+' 在不在?')
print(student5+' 在不在?')
print(student6+' 在不在?')
print(student7+' 在不在?')
print(student8+' 在不在?')
print(student9+' 在不在?')
print(student10+' 在不在?')
print(student11+' 在不在?')
print(student12+' 在不在?')
print(student13+' 在不在?')
print(student14+' 在不在?')
print(student15+' 在不在?')
print(student16+' 在不在?')
print(student17+' 在不在?')
print(student18+' 在不在?')
print(student19+' 在不在?')
print(student20+' 在不在?')
print(student21+' 在不在?')
print(student22+' 在不在?')
print(student23+' 在不在?')
print(student24+' 在不在?')
print(student25+' 在不在?')
print(student26+' 在不在?')
print(student27+' 在不在?')
print(student28+' 在不在?')
print(student29+' 在不在?')
print(student30+' 在不在?')
print(student31+' 在不在?')
print(student32+' 在不在?')
print(student33+' 在不在?')
print(student34+' 在不在?')
print(student35+' 在不在?')
print(student36+' 在不在?')
print(student37+' 在不在?')
print(student38+' 在不在?')
print(student39+' 在不在?')
print(student40+' 在不在?')
print(student41+' 在不在?')
print(student42+' 在不在?')
print(student43+' 在不在?')
print(student44+' 在不在?')
print(student45+' 在不在?')
print(student46+' 在不在?')
print(student47+' 在不在?')
print(student48+' 在不在?')
print(student49+' 在不在?')
print(student50+' 在不在?')
複製代碼

使用列表, 咱們就能夠極大的簡化代碼

students = ['趙麗穎',
            '楊冪',
            '易烊千璽',
            'Angelababy',
            '邢菲',
            '趙磊',
            '鞠婧禕',
            '關曉彤',
            '謝豪',
            '鄭爽',
            '向華強',
            '鄧倫',
            '迪麗熱巴',
            '雷傑',
            '王麗坤',
            '華晨宇',
            '金晨',
            '葉一茜',
            '吳京',
            '李易峯',
            '景甜',
            '黃璐',
            '陳曉',
            '宋茜',
            '韓雪',
            '朱一龍',
            '朱亞文',
            '賈乃亮',
            '章子怡',
            '張馨予',
            '張雲雷',
            '佟麗婭',
            '劉濤',
            '楊超越',
            '高圓圓',
            '何炅',
            '楊子姍',
            '張鈞甯',
            '古力娜扎',
            '鄧超',
            '易建聯',
            '鄭愷',
            '薩頂頂',
            '靳東',
            '何杜娟',
            '佟大爲',
            '姚明',
            '馬伊琍',
            '吳磊',
            '姚晨']
for student in students:
    print(student+" 在不在?")
複製代碼

1558405138455
1558405226514

從如下代碼中找規律

list2 = [5,6,7,8,9]
print(list2) # 和第二行沒有區別
print(list2[:]) # 從開頭到結尾
print(list2[2:]) # 從下標是2的開始, 到結束
print(list2[:2]) # 從開始到下標2, 可是不包括下標2
print(list2[1:3]) # 下標1和下標2, 不包括下標2
print(list2[2:4]) # 下標2到下標4, 不包括下標4
複製代碼

1558419497310

這兩行代碼有區別嗎?

students = ['小明','小紅','小剛']
print(students[2])
print(students[2:])
複製代碼
students = ['小明','小紅','小剛']
print(students[2]) # 字符串
print(students[2:]) # 列表/數組 切片切出來的仍是列表
複製代碼

這段代碼會報錯嗎?

list3 = [1,2]
list3.append(3)
print(list3)
list3.append(4,5)
list3.append([4,5])
print(list3)
複製代碼
list3 = [1,2]
list3.append(3)
print(list3)
# list3.append(4,5) # 只能接收一個參數
list3.append([4,5]) # [1, 2, 3, [4, 5]]
print(list3)
複製代碼

咱們能夠得出哪些結論?

1558419916647

關於刪除數組中的元素

1558408682413
1558408794436

字典(對應PHP的關聯數組的概念)

1558409219026

對比一下list和dict

students = ['小明','小紅','小剛']
scores = {'小明':95,'小紅':90,'小剛':90}
複製代碼

查看列表和字段的元素個數(長度)

students = ['小明','小紅','小剛']
scores = {'小明':95,'小紅':90,'小剛':90}
print(len(students))
print(len(scores))
複製代碼

字典中, 鍵不能重複, 值能夠重複.

經過鍵來取值

scores = {'小明': 95, '小紅': 90, '小剛': 90}
print(scores['小明'])
複製代碼

字典的增刪元素

album = {'周杰倫':'七里香','王力宏':'心中的日月'}
del album['周杰倫']
print(album)
album['周杰倫'] = '十一月的蕭邦'
print(album)
print(album['周杰倫'])
複製代碼

總結

1558409786790

list vs dict

不一樣點(list有序, dict無序)

# 若是==左右兩邊相等,值爲True,不相等則爲False。
print(1 == 1)  
# 1等於1,因此值爲True
print(1 == 2)
# 1不等於2,因此爲False
# list有順序
students1 = ['小明','小紅','小剛'] 
students2 = ['小剛','小明','小紅']
print(students1 == students2)
# dict沒有順序
scores1 = {'小明':95,'小紅':90,'小剛':100}
scores2 = {'小剛':100,'小明':95,'小紅':90}
print(scores1 == scores2)
複製代碼

相同點(經過賦值來增長元素和修改元素)

list1 = ['小明','小紅','小剛','小美']
list1[1] = '小藍'
print(list1)
dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)
複製代碼

使用del 能夠刪除元素

scores = {'小明':95,'小紅':90,'小剛':90}
#del scores['小剛']
#若是隻須要修改鍵裏面的值,可不須要del語句
scores['小剛'] = 92
複製代碼

能夠任意嵌套

students = [['小明','小紅','小剛','小美'],['小強','小蘭','小偉','小芳']]
複製代碼

如何取出小芳

1558410262649
1558410282367

students = [['小明','小紅','小剛','小美'],['小強','小蘭','小偉','小芳']]
print(students[1][3])
複製代碼

字典嵌套

scores = {
    '第一組':{'小明':95,'小紅':90,'小剛':100,'小美':85},
    '第二組':{'小強':99,'小蘭':89,'小偉':93,'小芳':88}
}
print(scores['第二組']['小芳'])
複製代碼

取出小剛成績

scores = {
    '第一組':{'小明':95,'小紅':90,'小剛':100,'小美':85},
    '第二組':{'小強':99,'小蘭':89,'小偉':93,'小芳':88}
}
複製代碼

組合嵌套

取出小美, 以及小強的成績

# 最外層是大括號,因此是字典嵌套列表,先找到字典的鍵對應的列表,再判斷列表中要取出元素的偏移量
students = {
    '第一組': ['小明', '小紅', '小剛', '小美'],
    '第二組': ['小強', '小蘭', '小偉', '小芳']
}
# 最外層是中括號,因此是列表嵌套字典,先判斷字典是列表的第幾個元素,再找出要取出的值相對應的鍵
scores = [
    {'小明': 95, '小紅': 90, '小剛': 100, '小美': 85},
    {'小強': 99, '小蘭': 89, '小偉': 93, '小芳': 88}
]
複製代碼

tuple(元組)

大體和list一致, 區別在於, tuple不能更改元素

1558787190330

pop() 的做用

刪除最後一個元素, 返回該元素

1558787253622

pop(下標), 刪除指定下標對應的元素

1558787304924

del則沒有返回值

1558787378776

insert()的做用

list1 =  ['小明', '小紅', '小剛', '小美']
list1.insert(1,'小綠')
print(list1)
複製代碼

range(a)和range(a,b)和range(a,b,c)

1558423356990

循環: 把一件事重複執行不少遍。

1558416669488
1558416704812
1558416735875

遍歷list

for i in [1,2,3,4,5]:
   print(i)
複製代碼

1558416902489

i就是一個變量(空房子), 名字無所謂

for i in [1,2]:
    print(i)
for number in [1,2]:
    print(number)
for LOVE in [1,2]:
    print(LOVE)
複製代碼
for i in [1,2,3,4,5]:
    print(i)
print('事情所有辦完了!如今留在空房間裏的人是誰?')
print(i)
複製代碼

1558423137001

請你用for循環完成1到100的整數分別乘以5的計算,並打印出來,效果就像這樣:

1558423395212
1558426215312
1558423480465
1558423519402

假設你要作大采購,讓小明買醋,小紅買油,小白買鹽,小張買米;咱們先把這堆事情寫成一個字典:d = {'小明':'醋','小紅':'油','小白':'鹽'}

d={'小明':'醋','小紅':'油','小白':'鹽','小張':'米'}
print(d['小明'])
print(d['小紅'])
print(d['小白'])
print(d['小張'])
複製代碼

使用for循環

1558423659306

while循環

1558423682229
1558423706528

a = 0                #先定義變量a,並賦值
while a < 5:         #設定一個放行條件:a要小於5,才能辦事
    a = a + 1  # 知足條件時,就辦事:將a+1
    print(a)   # 繼續辦事:將a+1的結果打印出來
複製代碼

1558423753864

小說裏的主角小龍女(古墓派掌門人)自小在終南山上的古墓裏生活。這個門派有個規定,除非有男人願意爲掌門人死,不然掌門人永遠不能出墓門半步。

man = ''  # 注:''表明空字符串
while man != '有':  #注:!=表明不等於
	man = input('有沒有願意爲小龍女死的男人?沒有的話就不能出古墓。')
print('小龍女能夠出古墓門下山啦~')
複製代碼

你家的大門是密碼門,密碼是你的生日816。當輸錯密碼錯誤的時候,會提示「請嘗試輸入密碼:」。直到密碼輸入正確,就會提示「歡迎回家!」。

1558423918926

使用while循環, 應該怎麼寫?

pwd = ''
while pwd != '816':
    pwd = input('請輸入密碼:')
print('歡迎回家')
複製代碼

img

這道題的結果是什麼 ?

是5? 是0? 仍是 1,2,3,4,5 依次次出現 ?

a = 0
while a < 5:
	a = a + 1
print(a)
複製代碼

分析以下代碼

while a < 5:  # 當a小於5的時候,就自動執行後續縮進部分的語句
    print('如今a的值是:' + str(a)) #加一個print看看如今的a是多少
    a = a + 1  # 每執行一次循環,變量a的值都加1
    print('加1後a的值是:' + str(a)) #加一個print看看加1後的a是多少
print(a)
複製代碼

1558424384501

使用while循環改寫

for i in range(1,101):
    print(i*5)
複製代碼

1558424749788
1558424946808

小做業 輪流坐前排(使用兩種方式, 一種是append, 一種是pop)

['小紅', '小剛', '小明']
['小剛', '小明', '小紅']
['小明', '小紅', '小剛']
複製代碼

使用append

students = ['小明', '小紅', '小剛']
for i in range(3):
    student1 = students[0]
    students = students[1:]
    students.append(student1)
    print(students)
複製代碼

使用pop

students = ['小明','小紅','小剛']
for i in range(3):
    student1 = students.pop(0)
    students.append(student1)
    print(students)
複製代碼

快速跳轉:

貓哥教你寫爬蟲 000--開篇.md
貓哥教你寫爬蟲 001--print()函數和變量.md
貓哥教你寫爬蟲 002--做業-打印皮卡丘.md
貓哥教你寫爬蟲 003--數據類型轉換.md
貓哥教你寫爬蟲 004--數據類型轉換-小練習.md
貓哥教你寫爬蟲 005--數據類型轉換-小做業.md
貓哥教你寫爬蟲 006--條件判斷和條件嵌套.md
貓哥教你寫爬蟲 007--條件判斷和條件嵌套-小做業.md
貓哥教你寫爬蟲 008--input()函數.md
貓哥教你寫爬蟲 009--input()函數-人工智能小愛同窗.md
貓哥教你寫爬蟲 010--列表,字典,循環.md
貓哥教你寫爬蟲 011--列表,字典,循環-小做業.md
貓哥教你寫爬蟲 012--布爾值和四種語句.md
貓哥教你寫爬蟲 013--布爾值和四種語句-小做業.md
貓哥教你寫爬蟲 014--pk小遊戲.md
貓哥教你寫爬蟲 015--pk小遊戲(全新改版).md
貓哥教你寫爬蟲 016--函數.md
貓哥教你寫爬蟲 017--函數-小做業.md
貓哥教你寫爬蟲 018--debug.md
貓哥教你寫爬蟲 019--debug-做業.md
貓哥教你寫爬蟲 020--類與對象(上).md
貓哥教你寫爬蟲 021--類與對象(上)-做業.md
貓哥教你寫爬蟲 022--類與對象(下).md
貓哥教你寫爬蟲 023--類與對象(下)-做業.md
貓哥教你寫爬蟲 024--編碼&&解碼.md
貓哥教你寫爬蟲 025--編碼&&解碼-小做業.md
貓哥教你寫爬蟲 026--模塊.md
貓哥教你寫爬蟲 027--模塊介紹.md
貓哥教你寫爬蟲 028--模塊介紹-小做業-廣告牌.md
貓哥教你寫爬蟲 029--爬蟲初探-requests.md
貓哥教你寫爬蟲 030--爬蟲初探-requests-做業.md
貓哥教你寫爬蟲 031--爬蟲基礎-html.md
貓哥教你寫爬蟲 032--爬蟲初體驗-BeautifulSoup.md
貓哥教你寫爬蟲 033--爬蟲初體驗-BeautifulSoup-做業.md
貓哥教你寫爬蟲 034--爬蟲-BeautifulSoup實踐.md
貓哥教你寫爬蟲 035--爬蟲-BeautifulSoup實踐-做業-電影top250.md
貓哥教你寫爬蟲 036--爬蟲-BeautifulSoup實踐-做業-電影top250-做業解析.md
貓哥教你寫爬蟲 037--爬蟲-寶寶要聽歌.md
貓哥教你寫爬蟲 038--帶參數請求.md
貓哥教你寫爬蟲 039--存儲數據.md
貓哥教你寫爬蟲 040--存儲數據-做業.md
貓哥教你寫爬蟲 041--模擬登陸-cookie.md
貓哥教你寫爬蟲 042--session的用法.md
貓哥教你寫爬蟲 043--模擬瀏覽器.md
貓哥教你寫爬蟲 044--模擬瀏覽器-做業.md
貓哥教你寫爬蟲 045--協程.md
貓哥教你寫爬蟲 046--協程-實踐-吃什麼不會胖.md
貓哥教你寫爬蟲 047--scrapy框架.md
貓哥教你寫爬蟲 048--爬蟲和反爬蟲.md
貓哥教你寫爬蟲 049--完結撒花.mdhtml

相關文章
相關標籤/搜索