切片就是按位置取出 乙個list或者tuple 的一部分
>>
> l =
['michael'
,'sarah'
,'tracy'
,'bob'
,'jack'
]>>
> l[0:
3]['michael'
,'sarah'
,'tracy'
]
切片操作 l[0:n] 指從取出前n個元素,即從索引為0 到 n-1 的元素,不包括n,在切片操作中 只取到索引為 n-1的元素,如果第乙個索引為0,可以省略0
>>
>l[:3
]
也可以按倒序取出元素
>>
> l[-2
:]['bob'
,'jack'
]>>
> l[-2
:-1]
['bob'
]
但是在倒序中如果需要取到倒數第乙個,冒號後面留空即可,如果冒號後索引為-1即為倒數第乙個元素,對於l[-2:-1]同樣取不到-1,但對l[-2:]則能取到倒數第乙個元素。
取前n 個元素l[:n]後n個元素l[-n:]
如果需要前十個每隔 2個取乙個,則
>>
> l[:10
:2][
0,2,
4,6,
8]
所有元素每隔2個取乙個
>>
> l[::
2][0
,2,4
,6,8
]
只寫[:]則為複製乙個list
>>
> l[:]
[0,1
,2,3
,...
,99]
tuple同樣是乙個list,也可以使用切片操作,但是切片的結果是乙個tuple
>>
>(0
,1,2
,3,4
,5)[
:3](
0,1,
2)
字串也可以看成乙個list,每個元素就是乙個字元,也可以使用切片操作,結果也是乙個字串
>>
>
'abcdefg'[:
3]'abc'
>>
>
'abcdefg'[:
:2]'aceg'
在很多程式語言中,針對字串提供了很多各種擷取函式(例如,substring),其實目的就是對字串切片。python沒有針對字串的擷取函式,只需要切片乙個操作就可以完成,非常簡單。
利用切片操作,實現乙個trim()函式,去除字串首尾的空格,注意不要呼叫str的strip()方法:
# -*- coding: utf-8 -*-
deftrim
(s):
def
trim1
(s):
for i in s:
if s[:1
]==' ':
s=s[1:
]if s[-1
:]==' '
: s=s[:-
1]return s
deftrim2
(s):
# print(s[0])
if s[:1
]==' ':
s = s[1:
] s = trim(s)
if s[-1
:]==' '
: s = s[:-
1]s = trim(s)
return s
deftrim3
(s):
if s[:1
]==" ":
s = s[1:
] s = trim(s)
elif s[-1
:]==" "
: s = s[:-
1]
s = trim(s)
#這裡不能再else 裡加 返回,因為對於有兩個空格,第一層先減乙個,然後進第二層再減乙個,第三層發現沒有了返回乙個s給第二層,然後第二層之後沒有返回,預設返回乙個空值,所以這個返回不能加在else裡,而應該在加在if外面
# else:
# s = s
# return s
return s
deftrim4
(s):
while s[:1
]==' ':
s = s[1:
]while s[-1
:]==' '
: s = s[:-
1]return s
# 測試:
if trim(
'hello ')!=
'hello'
:print
('測試失敗!'
)elif trim(
' hello')!=
'hello'
:print
('測試失敗!'
)elif trim(
' hello ')!=
'hello'
:print
('測試失敗!'
)elif trim(
' hello world ')!=
'hello world'
:print
('測試失敗!'
)elif trim('')
!=''
:print
('測試失敗!'
)elif trim(
' ')!=
'':print
('測試失敗!'
)else
:print
('測試成功!'
)
在這裡,應該使用切片而不是索引,因為若 s為 『』 空值,則會索引越界,而是用切片則不會出現索引越界 初學Python第五天
繼上次10.3賦值運算子之後 4 位運算子 定義 把數字看做二進位制進行計算的運算子。例如 1 按位 與 運算子 只要兩個對應的二進位制位有乙個為0,則該位結果為0,否則為1 60 13 輸出結果12,二進位制解釋 00001100。2 按位 或 運算子 只要兩個對應的二進位制位有乙個為1,則該位結...
python初學第五天 高階特性之列表生成式
如果要生成list 1,2,3,4,5,6,7,8,9,10 可以使用list range 1,11 但是如果要生成x x 首先可以通過迴圈來新增元素到列表後部,但是較為繁瑣 第二種方法則是使用列表生成式來生成list x x for x in range 1 11 1,4 9,16 25,36 4...
2020 3 15初學python第五天
字典dict 不是序列,用大括號括起來,體現對映關係,由鍵和值組成。如 訪問字典的方法 keys 返回字典所有的鍵 values 返回字典所有的值 items 把每乙個項 剪 值 以元組的形式列印出來 clear 清空乙個字典 update 更新字典 等 集合set 用大括號括起來,不反映對映關係,...