2024-01-28_Python數(shù)組和元組

1. 插入元素

  • arr.append() #在列表的最后一個(gè)位置插入元素
motorcycles = ['honda', 'yamaha', 'suzuki'] 
print(motorcycles) 
motorcycles.append('ducati') 
print(motorcycles)
  • arr.insert(position, ele) #在指定位置插入元素。這個(gè)指定位置是原本列表的位置,不是新元素的位置。插入新元素后,其他元素往右邊移動(dòng)一個(gè)位置。position為正數(shù)或者負(fù)數(shù)結(jié)果稍微有點(diǎn)不一樣
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, "Hao jue")
print(motorcycles)
#打印出['Hao jue', 'honda', 'yamaha', 'suzuki']
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(-1, "Hao jue")
print(motorcycles)
#打印出['honda', 'yamaha', 'Hao jue', 'suzuki']

2. 刪除元素

  • list.pop() #彈出末尾的最后一個(gè)元素,返回彈出的元素。list也已經(jīng)被更新
  • list.pop(position) #彈出指定位置的元素,返回彈出的元素。list也已經(jīng)被更新
  • del list[0] #刪除指定位置的元素,返回彈出的元素。list也已經(jīng)被更新
  • list.remove(ele) #按照值來刪除元素。如下代碼會報(bào)錯(cuò),按照值來刪除元素,list必須有這個(gè)元素。僅僅刪除一次。如果要多次刪除,就需要用循環(huán)。
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.remove("nih")
print(motorcycles)

3. 簡單排序

  • list.sort()
  • cars.sort(reverse=True)
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True) #按照字母降序排列。永久性改變一個(gè)list。這個(gè)方法返回None。
cars.sort() #按照字母順序升序
  • sorted()方法。這個(gè)方法返回一個(gè)新的數(shù)組,原來的數(shù)組不變
cars = ['bmw', 'audi', 'toyota', 'subaru']
sorted(cars)
sorted(cars, reverse=True)
  • list.reverse() 反轉(zhuǎn)列表。reverse()不是指按與字母順序相反的順序排列列表元素,而只是反轉(zhuǎn)列表元素的排列順序。方法reverse()永久性地修改列表元素的排列順序,但可隨時(shí)恢復(fù)到原來的排列順序,為此只需對列表再次調(diào)用reverse()即可。

4. 數(shù)值列表

  • range(1, 10),返回的不是一個(gè)list。需要用list(range(1,))來返回list。
  • 對于需要用到index來訪問list的情況,或者需要訪問數(shù)字的情況下,可以用如下:
for i in range(1,5):
    print(cats[i])
  • 在這個(gè)示例中,range()只是打印數(shù)字1到4,函數(shù)range()讓Python從你指定的第一個(gè)值開始數(shù),并在到達(dá)你指定的第二個(gè)值后停止,輸出不包含第二個(gè)值(這里為5)。要打印數(shù)字1~5,需要使用range(1,6)。
  • 使用函數(shù)range()時(shí),還可指定步長。
for even in range(2,11,2):
    print(even)
  • 步長可以為負(fù)數(shù)。如下打印出2和1
  • 通過這個(gè),可以實(shí)現(xiàn)反向訪問list。
for even in range(2,0,-1):
    print(even)

5.對數(shù)字列表進(jìn)行簡單的統(tǒng)計(jì)計(jì)算

  • 可以使用min、max、sum函數(shù)。如果傳入的list為空,就會報(bào)錯(cuò)。
digits = [1,2,3,4,5,6]
print(digits, min(digits), max(digits), sum(digits))
sum(range(1,5))

6. 列表解析

  • 列表解析讓你只需編寫一行代碼就能生成列表。
squares = [value**2 for value in range(1,11)] 
print(squares) #打印出[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
  • 要使用這種語法,首先指定一個(gè)描述性的列表名,如squares;然后,指定一個(gè)左方括號,并定義一個(gè)表達(dá)式,用于生成你要存儲到列表中的值。如上代碼中,表達(dá)式為value**2,它計(jì)算平方值。
  • 接下來,編寫一個(gè)for循環(huán),用于給表達(dá)式提供值,再加上右方括號。for循環(huán)為for value in range(1,11),它將值1~10提供給表達(dá)式value**2。請注意,這里的for語句末尾沒有冒號。
  • 表達(dá)式還可以是一個(gè)函數(shù)。
  • 列表解析事實(shí)上就是一個(gè)for循環(huán)。
sums = [sum(range(1,i+1)) for i in range(1,11)]

def get_sum(i):
    return sum(range(1, i + 1))
sums = [get_sum(i) for i in range(1,11)]
print(sums)
  • 注意sep這個(gè)參數(shù),用來給print方法指定分割符。默認(rèn)是空格。
digits = list(range(1, 1000001))
print(min(digits), max(digits), sum(digits), end=";", sep=";")

帶if的列表解析

  • 帶有if的列表解析。很容易理解,滿足if條件的value才保留下來。
  • 這里可以用步長來處理。
digits = [i for i in range(3,31) if i%3==0]
print(digits) #[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

多變量的列表解析

digits = [(x,y) for x in range(1,5) for y in range(1,6) if y >=2 ]
print(digits)
#返回[(1, 2), (1, 3), (1, 4), (1, 5), (2, 2), (2, 3), (2, 4), (2, 5)]

7. 切片

  • 訪問list的指定范圍的部分元素,稱之為切片。
  • list[start:end]返回一個(gè)新的list。
  • 要?jiǎng)?chuàng)建切片,可指定要使用的第一個(gè)元素和最后一個(gè)元素的索引。與函數(shù)range()一樣,Python在到達(dá)你指定的第二個(gè)索引前面的元素后停止。要輸出列表中的前三個(gè)元素,需要指定索引0~3,這將輸出分別為0、1和2的元素。
  • 當(dāng)start為空,表示從頭開始。end為空,表示直到結(jié)尾(包含最后一個(gè))。
  • start和end都可以為空,表示全部的list元素,用來list復(fù)制
  • 當(dāng)end超過list元素個(gè)數(shù)的時(shí)候,不會報(bào)錯(cuò),會把start開始的全部元素都切片出來。
  • 同樣的,start和end都可以用負(fù)數(shù)。
  • 當(dāng)start大于end的時(shí)候,不會報(bào)錯(cuò),返回空list,即[]
players = ["charles", "martina", "michael", "florence", "eli"]
for player in players[0:3]:
    print(player)
new_players = players[:]

8.元組(tuple)

  • python用()表示一個(gè)元組。列表是可以修改的,而不可變的列表被稱為元組。
  • 元組的元素不能修改,但是存儲元組的變量是可以重新賦值的
dimensions = (200, 50)
print(dimensions)
dimensions = (200, 500)
print(dimensions)

9. 數(shù)組合并

list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
##或者merged_list = list1.extend(list2)
print(merged_list)  # 輸出: [1, 2, 3, 4, 5, 6]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容