1. 程式人生 > 其它 >組織列表(包含迴圈)

組織列表(包含迴圈)

迴圈——遍歷整個列表

迴圈,讓計算機自動完成重複工作的常見方式之一。

比如

magicians = ['alice', 'david', 'carolina']
#magician 作為與列表中的元素相關聯的臨時變數,
# 當然也可以是其他的變數名, 比如 i、j 等,不過這種變數不易被理解
for magician in magicians: #對於此處,只要列表中還有元素迴圈就不會終止
    print(magician) #此處也可以使用f字串,.title(), .upper()等操作
    print(f"hello {magician}!")
    magician.upper() #注意此處只是對臨時變數操作斌沒有影響到列表中的元素 ,這個應該通過索引來,不過需要計數器
#for迴圈管到又縮排的最下一行
#像下面這一行就不會被迴圈
print("hello")
print(magicians) #這個會反映了第七行並沒有影響到列表本身

在for迴圈後沒有縮排的程式碼只執行一次,所以要注意好縮排,

當然也不能忘記for迴圈後面的冒號,如果沒有就會語法錯誤執行不了

 

建立數值列表

使用range方法

for value in range(1, 5): #這裡只會取到4,並不會取到5
    print(value)

如果使用range與預期不符合,嘗試對範圍進行加一或者減一

 

用range建立列表

numbers = list(range(1,5))
print(numbers)

#注意少了list 可能輸出的是這樣的
objects = range(1, 4)
print(objects)

#range 函式還可以指定步長
even_numbers = list(range(2, 11, 2)) # 從 2 開始數 步長為 2(也就是每次加 2 ), 數到 10
print(even_numbers)

#當然還可以與 for 迴圈配合 range
squares = [] # 建立空列表
for value in range(1, 4):  # 1 ~ 3
    value = value ** 2  # ** 表示平方
    squares.append(value)
    # 或者 使用 squares.append(values ** 2) 代替上面兩行
print(squares)

 

對資料列表執行簡單的統計運算

digits = [1, 100, -10, 2.2, 3, 1, 2]
print(min(digits))   # 求列表中的最小值
print(max(digits))   # 求最大值
print(sum(digits))   # 求列表中數的總和

 

列表解析——有點騷操作

squares = [value ** 2 for value in range(1, 5)] 
# 使用這種方式建立的列表就跟簡潔, 4 行變 1 行

print(squares)

 

切片

切片操作

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1: 4])  # 列印第二個到第4個元素
# 上面這種方式 需要有冒號

# 不指定起始點,預設從開頭開始
print(players[:2])  # 前兩位

# 同樣也可以不指定結尾, 預設從結尾開始
print(players[1:])

print(players [:])
# 當然可以使用負值索引
print(players[: -2])
print(players[-3:])  # 列印最後三個運動員

 

遍歷切片

 也就遍歷部分列表

 

players = ['charles', 'martina', 'michael', 'florence', 'eli']

for player in players[ : 3]:
    print(player)

 

複製列表

其實就是是使用沒有首索引和尾索引的切片,切記等號是行不通的

my_favorite_foods = ['pizza', 'cake', 'apple']
friend1_favorite_foods = my_favorite_foods[:]
print(my_favorite_foods)
print(friend1_favorite_foods)

friend2_favorite_foods = my_favorite_foods
print(friend2_favorite_foods)
# 上面這種方式雖然輸出沒什麼變化, 但是其實就是用另一個變數指向同一個地址
#用下面這種方式就可以檢驗出來
my_favorite_foods.append("ice icream")
print(friend2_favorite_foods)

 

元組

定位元組

元組是不可變的列表,強行修改元組的元素會報錯

用圓括號來標識,但仍然使用方括號和索引訪問

dimensions = (50, 200)
print(dimensions[0])

 

嚴格意義上元組是通過逗號標識,並沒有圓括號

dimensions = 50, 200
print(dimensions[0])

# 如果元組只有一個元素時, 就一定需要圓括號來標識
my_list = (3, )
print(my_list[0])

 

修改元組元素的報錯提示

dimensions = (50, 200)
dimensions[1] = 0

 

修改元組變數(注意不是元組中的元素)

dimensions = (50, 200)
for dimension in dimensions:
    print(dimension)

print()

dimensions = (20, 90)
for dimension in dimensions:
    print(dimension)