Python(四)切片 列表推導

2021-08-19 04:55:13 字數 1598 閱讀 6999

一、將給定的字串反轉

//將每個單詞反轉,然後將所有字元反轉,最後再合成新的單詞

def reverse(str_list,start,end):

while startstr_list[start],str_list[end] = str_list[end],str_list[start]

start += 1

end -= 1

setence = ' hello,how are you? fine. '

str_list = list(setence)

i=0while i if str_list[i] != ' ':

start = i

end = start+1

while (end

str_list[end]!= ' ':

end += 1

reverse(str_list,start,end-1)

i=end

else:

i += 1

str_list.reverse()

print(str_list)

二、切片

切片[start:end:step] //大於start 小於end

li = list(range(10))

print(li[2:

5]) //[3,,5]

print(li[:

4] //[0,1,2,3]

print(li[5:]) //[6,7,8,9]

print(li[0:10:

3]) //[0,3,6,9]

負值處理

print(li[5:-2])    //[5,6,7]

print(li[9:0:-1]) //[9,8,7,6,5,4,3,2,1]

print(li[9::-1]) //[9,8,7,6,5,4,3,2,1,0]

切片生成乙個新的物件

print

(li)

快速反轉陣列

re_li =li[::-1]
三、列表推導

生成一維陣列

li = 

for i in

range(10):

li = [1]*10

生成前10個偶數

li = [i*2

for i in range(10)]

print (li)

二維陣列賦值

錯誤做法

li_2d = [[0]*3] * 3

li_2d[0][0] = 100 //li_2d[0][0],[1][0],[2][0]都被修改為100,即為淺拷貝

正確做法

li_2d = [[0]* for i in range(3)]

快速生成十個數的列表

d = 

//輸出

Python高階 列表推導式 切片

1.x for x in range 1,10 2.x 2 for i in range 10 3.x y for x in abcde for y in 1234567 1.格式 起始位置 終止位置 步長 2.完全複製 b a 3.獲取倒序的複製 b a 1 4.擷取部分 a.複製 m,n b a...

python 切片 Python 列表切片

想必很多人都使用過列表的切片,通過切片可以從列表中獲取乙個或多個元素,但你真的了解切片?一 一般玩法 name a b c d e f g h name 0 2 獲取 0 2 中間的元素,不包括索引為 2 的元素 a b name 2 從 0 開始切,可省略 0 a b name 1 同樣地,切到最...

python 列表切片

a 0,1,2,3,4,5,6,7,8,9 print a 1 3 a 1 3 print a 3 a 3 print a 3 a 3 print a 1 7 2 a 1 7 2 步長為2 print a 1 a 1 從後往前遍歷 print a 7 1 2 a 7 1 2 從後往前遍歷,步長為2 ...