本篇內(nèi)容主要講解“Python嵌套方法怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python嵌套方法怎么使用”吧!
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)宣漢,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
題目:
給出一個字符串,其中只包含括號(大中小括號 “()[]{}” ),括號可以任意嵌套。如果同樣的左右括號成對出現(xiàn)并且嵌套正確,那么認(rèn)為它是匹配的。例如:
1、() -> TRUE (匹配)
2、[()] -> TRUE (匹配,括號可以嵌套)
3、()() -> TRUE (匹配,括號可以并列排列)
4、({}([])) -> TRUE (匹配,括號可以任意嵌套,大括號不必在外)
5、) -> FALSE (不匹配,缺少左括號)
6、(} -> FALSE (不匹配,左右括號不一樣)
7、{)(} -> FALSE (不匹配,左右括號相反)
由于嵌套是隨意的,因此不能像剝洋蔥一樣從最外層剝
不管如何嵌套,總會有至少一對括號里面是不嵌套任何字符串的
遇到一個 ( 時,不可能去找與它對應(yīng)的 ) ,因?yàn)?) 很可能有多個,哪個是與之對應(yīng)的呢,這個思路非常麻煩
有一種名為“棧”的數(shù)據(jù)結(jié)構(gòu),它的特點(diǎn)是先進(jìn)后出,而list就可以偽裝成一個棧,利用先進(jìn)后出的特性,將左右兩個括號抵消掉,文字已經(jīng)不能解釋清楚了,還是上代碼吧
#coding=utf-8
str_value = '({}([]))'
lst = list(str_value)
lst_compare = []
b_format = True
for item in lst:
if item == '(' or item == '{' or item == '[':
lst_compare.append(item)
if len(lst_compare) == 0:
b_format = False
break
if item == ')':
if lst_compare[-1] == '(':
lst_compare.pop()
else:
b_format = False
if item == ']':
if lst_compare[-1] == '[':
lst_compare.pop()
else:
b_format = False
if item == '}':
if lst_compare[-1] == '{':
lst_compare.pop()
else:
b_format = False
if not len(lst_compare) == 0:
b_format = False
if b_format:
print u'格式正確'
else:
print u'格式錯誤'
首先要明白第二行所使用的lis方法的作用,它將字符串轉(zhuǎn)成一個list
對lst進(jìn)行遍歷,將遍歷得到的各種左括號放入st_compare 中
在對lst進(jìn)行遍歷過程中,如果遇到一種右括號,則和st_compare中末尾的元素比較,判斷他們是不是一對,如果是一對,則是用pop方法把st_compare末尾的元素彈出來,如果不是,就說明括號不是成對出現(xiàn)的
如果最終st_compare的長度不為0,就說明有一些左括號是沒有被抵消掉的,格式必然不正確
到此,相信大家對“Python嵌套方法怎么使用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁標(biāo)題:Python嵌套方法怎么使用
文章來源:http://www.rwnh.cn/article34/jephpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站制作、網(wǎng)站營銷、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)