txt = "google#runoob#taobao#facebook"
x = txt.split("#",2)
y = txt.split("#")
# print(x)
# print(y)
def mysplit(input:str, separator:str =" ", num:int =-1):
'''模仿字串自帶的split
:param input:輸入的字串
:param separator:分隔符,預設是空格
:param num:分割數量
:return:列表
'''list =
start_index = #記錄分隔符出現的位置
length = len(input)
for i in range(length):
if input[i] ==separator:
# print(start_index)
index_length = len(start_index)
#num分四種情況
if num <0 or index_length<=num:
#負數為全部分割 or 大於分隔符數量返回全部分割結果
begin = 0 #記錄input陣列範圍下限
for i in range(index_length):
begin = start_index[i]+1 #更新
return list
elif num ==0:
#0為返回作為列表整個字串
return list
elif len(start_index)>num:
#小於分隔符數量則返回對應數量的分割結果,字串剩餘內容則在返回列表的最後乙個
begin = 0
for i in range(num):
begin = start_index[i] + 1
return list
res = mysplit(txt,"#",2)
# res = mysplit(txt,"#",0)
# res = mysplit(txt,"#",-6)
print(res)
這樣可以實現,但兩次for迴圈浪費了效能。
下面是改良版,簡化**,讓演算法在乙個for迴圈內完成工作
txt = "google#runoob#taobao#facebook"
def mysplit(input:str, separator:str =" ", num:int =-1):
'''模仿字串自帶的split
:param input:輸入的字串
:param separator:分隔符,預設是空格
:param num:分割數量
:return:列表
'''split_list =
if num == 0: #num為0時返回列表形式的字串
return split_list
num = num if num >= 0 else -1 #過濾負數num
separator_index = 0 #記錄分隔符位置
separator_num = 0 #記錄分隔符數量
length = len(input)
begin = 0 #記錄input左區間
for i in range(length):
if input[i] ==separator:
separator_num += 1
if num+1 == separator_num:#分隔符數量大於使用者需要分割的數量時,直接跳過
break
separator_index = i
begin = i+1
return split_list
res = mysplit(txt,"#",2)
print(res)
python字串 Python 字串
建立字串很簡單,只要為變數分配乙個值即可。例如 var1 hello world var2 python runoob python訪問字串中的值python不支援單字元型別,單字元在 python 中也是作為乙個字串使用。python訪問子字串,可以使用方括號來擷取字串,如下例項 例項 pytho...
python字串 python字串
單引號示例常用的轉義字元 轉義字元案例1format 格式化練習1 help sisdigit,isnumeric,isdecimal 三個判斷數字的函式 isalnum 檢查字串是否由字母加數字組成 s test1split 字串拆分 splitlines 已換行符拆分 join 合成字串 upp...
python字串用法 python字串使用總結
python 字串使用總結 字串是程式中最常見的資料型別。在 python 中,可以使用三種方式定義字串。單 引號 雙引號和三引號。例如 string string string 或者是 string 在使用上,單引號和雙引號沒有什麼區別。三引號的主要功能是在字串中可以 包含換行 也就是說,在三引號...