一、列表的遍歷
每個縮進的代碼行都是循環的一部分,且將針對列表中的每個值都執行一次。因此,可對列表中的每個值執行任意次數的操作。
magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)
注意:
1、遍歷的時候,后面需要加冒號;
2、遍歷下面的內容時候,至少需要一行內容,且這行內容要縮進;
# 遍歷的時候下面沒有縮進的代碼行-->會報錯
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
3、縮進和不縮進的差別
3.1縮進的行–>重復執行;
magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)print(magician.title() + ", that was a great trick!")
##輸出結果為如下展示:
alice
Alice, that was a great trick!
david
David, that was a great trick!
carolina
Carolina, that was a great trick!
3.2沒縮進的行–>只執行一次(值為列表末尾的值);
遍歷完畢的時候,如果下面打印的內容沒有縮。那么只會執行一次,且值為列表末尾的值
magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)
print(magician.title() + ", that was a great trick!")#輸出結果為如下展示:
alice
david
carolina
Carolina, that was a great trick!
二、使用函數 range()
2.1規則:左包右開
#輸出1 2 3 4
for value in range(1,5):
print(value)
#輸出1 2 3 4 5
for value in range(1,6):
print(value)
2.2使用函數 range() 時,還可指定步長
語法
range(startNumber,endNumber,stepLength)
startNumber:開始的數字;
endNumber:結束的最大數字,且要比startNumber大;
stepLength:一次累加多少;
even_numbers = list(range(2,11,2))
print(even_numbers)
#輸出結果
[2, 4, 6, 8, 10]
三、對數字列表執行簡單的統計計算
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45
四、列表解析
前面介紹的生成列表 squares 的方式包含三四行代碼,而列表解析讓你只需編寫一行代碼就能生成這樣的列表。 列表解析 將 for 循環和創建新元素的代碼合并成一行,并自動
附加新元素。面向初學者的書籍并非都會介紹列表解析,這里之所以介紹列表解析,是因為等你開始閱讀他人編寫的代碼時,很可能會遇到它們。
請注意,這里的 for 語句末尾沒有冒號。
squares = [value**2 for value in range(1,11)]
print(squares)
#輸出結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
五、切片
切片:列表的一部分;
5.1語法
[start🔚step]
start:開始截取的位置,截取的內容包含該位置。
end:結束截取的位置,截取的內容不包含該結束位置。
step:截取的步長,默認值為1。step為正的時候,代表從左到右截取。step為負的時候,從右到左反向截取
例如:
[:]:提取從開頭到結尾的整個字符串的全部內容;
[start:]:從start下標字符串開始截取,直到字符串的末尾(包含末尾字符);
[:end]:從字符串的開始字符截取,直到下標end結束(不包含這個end下標);
[start:end]:從start下標開始截取,直到下標end結束(不包含這個end下標);
[start🔚step]:從start下標字符串開始截取,直到下標end結束(不包含這個end下標),步長為step;
[::2]:每隔一個輸出內容;
[::-1]:將內容反序輸出;
[-2:-8:-1]:將從下標-2開始(包含自己),直到下標-8(不包含自己)結束內容反序輸出;
備注:反序輸出的時候start一定要在end的右邊
5.2規則:左包右開
從下標X開始,到下標Y結束,但是不包含下標Y的值
# 從下標0開始,輸出到下標3的值結束,但是不包含下標3的值
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
#輸出結果:
['charles', 'martina', 'michael']
5.3如果你沒有指定第一個索引, Python 將自動從列表開頭開始
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
#輸出結果:
['charles', 'martina', 'michael', 'florence']
5.4如果你沒有指定最后一個索引, Python 將自動到列表末尾結束
①開始的下標是正數
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
#輸出結果:
['michael', 'florence', 'eli']
②開始的下標是負數
# 輸出倒數三個值
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
#輸出結果:
['michael', 'florence', 'eli']
5.5下標都為負數
如果下標都是負數,那么最后一位的下標是從-1開始計算的
#從下標-8的地方(倒數第八個)開始,直到下標-2結束(不包含下標-2的那個值)s="歡迎大家來到我的博客學習python課程"
result=s[-8:-2]#下標-8的值是p;下標-2的值是"課",但是不包含"課"
result=s[-2:-8:-1]#下標-2的值是"課";下標-8的值p,但是不包含p;反序輸出
print(result)
# 輸出
python
課nohty
5.6遍歷切片
輸出前三個隊員的姓名
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
for player in players[:3]:print(player.title())
六、復制列表
6.1復制列表+地址不變
friend_foods = my_foods
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
# 輸出結果:
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
6.2復制列表+地址變化
friend_foods = my_foods[:]
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
# 輸出結果:
['pizza', 'falafel', 'carrot cake', 'cannoli']
['pizza', 'falafel', 'carrot cake', 'ice cream']
總結:
1.friend_foods = my_foods
是將地址給了另外一個列表,他們都共同指向了一個相同的地址;
2.friend_foods = my_foods[:]
是將my_foods的元素都復制了一份到friend_foods 中;然后他們互相之間互不影響;