在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...