我們提到切片的時(shí)候,一般想到的大多數(shù)是分割列表。其實(shí)它還可以對(duì)列表進(jìn)行拼接,想必這點(diǎn)是很多人不知道的,這就是切片的占位符用法。留在原列表中,占據(jù)位置的同時(shí)起到拼接的作用。下面我們就切片和占位符的用法分別進(jìn)行理解,然后帶有切片作為占位符使用的實(shí)例代碼。
拼接字符串的方法,其中三種格式化類的拼接方法(即 %、format()、template)就是使用了占位符的思想。對(duì)于列表來(lái)說(shuō),使用切片作為占位符,同樣能夠?qū)崿F(xiàn)拼接列表的效果。特別需要注意的是,給切片賦值的必須是可迭代對(duì)象。
li = [1, 2, 3, 4]
# 在頭部拼接
li[:0] = [0] # [0, 1, 2, 3, 4]
# 在末尾拼接
li[len(li):] = [5,7] # [0, 1, 2, 3, 4, 5, 7]
# 在中部拼接
li[6:6] = [6] # [0, 1, 2, 3, 4, 5, 6, 7]
# 給切片賦值的必須是可迭代對(duì)象
li[-1:-1] = 6 # (報(bào)錯(cuò),TypeError: can only assign an iterable)
li[:0] = (9,) # [9, 0, 1, 2, 3, 4, 5, 6, 7]
li[:0] = range(3) # [0, 1, 2, 9, 0, 1, 2, 3, 4, 5, 6, 7]
上述例子中,若將切片作為獨(dú)立對(duì)象取出,那你會(huì)發(fā)現(xiàn)它們都是空列表,即 li[:0]==li[len(li):]==li[6:6]==[] ,我將這種占位符稱為“純占位符”,對(duì)純占位符賦值,并不會(huì)破壞原有的元素,只會(huì)在特定的索引位置中拼接進(jìn)新的元素。刪除純占位符時(shí),也不會(huì)影響列表中的元素。
myName=input('Enter your name:')
userAge=input('Enter your age:')
userHight=input('Enter your hight:')
jobPosition=input('Enter your position:')
phoneNum=input('Enter your telephone')
print('\n\n\nName is %s'%(myName))
print('Age is %d'%(int(userAge)))
print('Hight is %s'%(float(userHight)))
print('Job is %s'%(jobPosition))
print('Telephone is %s'%(int(phoneNum)))
print("string=%-6s" %string) # 輸出的打印結(jié)果為 string=good (當(dāng)字符串的長(zhǎng)度小于6時(shí),在字符串的右側(cè)填補(bǔ)空格,使得字符串的長(zhǎng)度為6)
#小數(shù)點(diǎn)后的數(shù)字表示截取的字符串長(zhǎng)度
print("string=%.3(6)s" %string) # 輸出的打印結(jié)果為 string=goo(good)(%.3s的意思是:截取字符串的前3個(gè)字符,當(dāng)截取字符串的字符長(zhǎng)度大于字符串時(shí),輸出的結(jié)果是整個(gè)字符串)
print("string=%a.bs" %string) # 先是根據(jù)小數(shù)點(diǎn)后面的數(shù)字b截取字符串,當(dāng)截取的字符串長(zhǎng)度小于a時(shí),需要在字符串的左側(cè)填補(bǔ)空格,使得字符串的長(zhǎng)度變?yōu)閍
print("string=%*.*s" %(6, 3, string)) # %*.*s表示精度, 兩個(gè)*的值分別由%string前面被兩個(gè)逗號(hào)隔開(kāi)的數(shù)值來(lái)指定
到此這篇關(guān)于python切片作為占位符使用實(shí)例講解的文章就介紹到這了,更多相關(guān)python切片如何作為占位符使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!