Day3 列表及元組的增刪改查

2021-10-07 12:46:49 字數 3679 閱讀 8007

在python中,字串屬於不可變物件,不支援原地修改,如果需要修改其中的值,只能建立新的字串物件。但是,經常我們確實需要原地修改字串,可以使用io.stringio物件或array模組。

import io

a ="hello world"

aio = io.stringio(a)

print

(aio)

aio.seek(7)

aio.write(

"8")

print

(aio.getvalue(

))

如果對於字串的修改十分頻繁,推薦使用可變字串。

序列是一種資料儲存方式,用來儲存一些來的資料。在記憶體中,序列就是一塊用來存放多個值的連續記憶體空間。比如乙個整數序列[10,20,30,40],可以這樣示意表示:

字串和列表都是序列型別,乙個字串是乙個字串行,乙個列表是任何元素的序列,python的列表大小可變,根據需要隨時增加或縮小。

推導式生成列表

a =

[x*2

for x in

range(5

)]print

(a)# [0, 2, 4, 6, 8]

a =

[x *

2for x in

range

(100

)if x %9==

0]print

(a)#[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

當列表增加和刪除元素時,列表會自動進行記憶體管理,大大減少了程式設計師的負擔。但這個特點涉及列表元素的大量移動,效率較低。除非必要,我們一般只在列表的尾部新增元素或刪除元素,這會大大提高列表的操作效率。

a =[20

,40]print(id

(a))

#248018612896880)

print

(a)print(id

(a))

#2480186128968

a =[20

,40]print(id

(a))

#2480186129032

a = a +[50

]print

(a)print(id

(a))

#2480136872520

extend()方法:將目標列表的所有列表元素新增到本列表的尾部,屬於原地操作,不建立新的列表。

a =[20

,40]a.extend([50

,60])

# [20, 40, 50, 60]

print

(a)[50,

60])#[20, 40, 50, 60, [50, 60]]

print

(a)

insert()插入元素:可以將指定的元素插入到列表物件的任意指定位置,會影響處理速度,盡量避免使用。

a =[20

,40,60

]a.insert(2,

100)

print

(a)#[20, 40, 100, 60]

乘法擴充套件:

a =[20

,40,60

]b = a*

3print

(b)#[20, 40, 60, 20, 40, 60, 20, 40, 60]

我們可以通過索引訪問列表中的對應元素。

標準格式為:[起始偏移量start,終止偏移量end,步長step]

# 列表排序

a =[80,

40,20,

50]a.sort(

)# 預設公升序

print

(a)# [20, 40, 50, 80]

a.sort(reverse=

true

)# 降序排列

print

(a)# [80, 50, 40, 20]

# 隨機排序

import random

random.shuffle(a)

print

(a)

a =[[

"高小一",18

,30000

,"北京"],

["高小二",19

,20000

,"上海"],

["高小三",20

,10000

,"深圳"],

]for m in

range(3

):for n in

range(4

):print

(a[m]

[n], end=

"\t"

)print()

# 列印完一行換行

'''高小一 18 30000 北京

高小二 19 20000 上海

高小三 20 10000 深圳

'''

元組屬於不可變序列,因此,不能修改元組中的元素。

# 生成器推導式建立元組

s =(i*

2for i in

range(5

))print

(s)# at 0x0000025b1fc8dc78>

print

(tuple

(s))

#(0, 2, 4, 6, 8)

s =

(i*2

for i in

range(5

))print

(s.__next__())

#0print

(s.__next__())

#2print

(s.__next__())

#4print

(s.__next__())

#6print

(s.__next__())

#8#超出range的範圍會報錯

Day 3 列表與元組

1 建立乙個普通列表 eg.number 1,2,3 2 建立乙個混合列表 eg.number 1,6,7 有,2,e,3 3 建立乙個空列表 列表名.extend 元素 可以新增兩個元素,但引數必須以列表形式 自動加入列表末端 列表名.insert.插入位次,準備插入元素 插入位次從0開始 通過元...

0828 列表 增刪改查

增 刪li alex 1,2,3 wusir 女神 jojo lien huahua hanmeimei name li.pop 0 刪除 alex 並將 alex 賦值給name print li,name name1 li.pop 刪除hanmeimei,並將hanmeimei賦值給name1 ...

PYTHON2 5 列表,元組,字典的增刪改查

列表 names 11 22,3.14 哈哈 python列表中,任何數值都可以存入列表中,並不會出現資料型別不一致的錯誤 列表的增刪改查 增 增加在列表尾 names.insert 插入的位置,插入的內容 可設定插入位置 names.extend names2 將另乙個列表元素加入本列表 刪nam...