日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【学神-RHEL7】P4-Python列表操作和字符串的常用方法

發布時間:2025/3/20 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学神-RHEL7】P4-Python列表操作和字符串的常用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

本節所講內容:

?

?

3.3.2?????? 分片

通過分片可以訪問序列中一定范圍內的元素。

語法:

序列[上邊界:下邊界]

>>> tag = '<ahref="http://www.python.org">Python web site</a>'

>>> tag

'<ahref="http://www.python.org">Python web site</a>'

>>> tag[32:-4]

'Python web site'

?

假如用a代表上邊界,b代表下邊界,x代表序列,則x[a:b]表示的真正的范圍應該是

a < x ≤ b??? 或??? a+1 ≤ x < b+1

注:只適用于正數分片

例:

>>> num =[1,2,3,4,5,6,7,8,9,10]

>>> num[3:6]

[4, 5, 6]

>>> num[7:8]

[8]

?

如果分片所得部分包括序列結尾的元素,只需空置最后一個索引即可

>>> num[-3:]

[8, 9, 10]

?

同樣,如果包含開始的元素,只需空置第一個索引即可

>>> num[:3]

[1, 2, 3]

?

如果要表示整個序列,兩邊都進行空置即可

>>> num[:]

[1, 2, 3, 4, 5, 6, 7, 8,9, 10]

?

例:根據用戶輸入信息打印出用戶訪問的域名

?

#!/usr/bin/env python

url = raw_input("Pleaseenter the URL: ")

domain = url[11:-4]

print "Domain name:%s"? % domain

?

執行結果

[root@localhost ~]#python domain.py

Please enter the URL:http://www.baidu.com

Domain name: baidu

?

3.3.3?????? 步長控制

分片的默認步長是1,可以手動指定為自己所需要的步長

語法

序列[上邊界:下邊界:步長]

>>> num[::2]

[1, 3, 5, 7, 9]

?

>>> num[3:9:3]

[4, 7]

?

步長可以為負數,此時分片從右到左提取元素

>>> num[9:3:-2]

[10, 8, 6]

?

3.3.4?????? 序列相加

>>> [1,2,3] +[4,5,6]

[1, 2, 3, 4, 5, 6]

>>> 'hello' +'world'

'helloworld'

?

但是列表和字符串無法進行相加

>>> [1,2,2] +'rm'

Traceback (most recentcall last):

? File "<stdin>", line 1, in<module>

TypeError: can onlyconcatenate list (not "str") to list

?

3.3.5?????? 乘法

>>> 'python' * 5

'pythonpythonpythonpythonpython'

>>>[2014,2015,2016] * 3

[2014, 2015, 2016, 2014,2015, 2016, 2014, 2015, 2016]

?

實例:以正確的寬度在居中的“盒子”內打印一個句子

[root@xuegod163 test]# vim ?box.py

#!/usr/bin/python

sentence=raw_input("Sentence:")

?

screen_width = 80

text_width = len(sentence)

box_width = text_width + 20

left_margin = (screen_width -box_width) // 2

left_ident = (box_width -text_width-4) // 2

?

print

print ' ' * left_margin +'+'? + '-' * (box_width-2) +? '+'

print ' ' * left_margin + ' '* left_ident + '| ' + ' ' * text_width???+ ' |'

print ' ' * left_margin + ' '* left_ident + '| ' +?????? sentence????? + ' |'

print ' ' * left_margin + ' '* left_ident + '| ' + ' ' * text_width???+ ' |'

print ' ' * left_margin +'+'? + '-' * (box_width-2) +? '+'

print

?

3.3.6?????? 成員資格

為了檢查一個值是否在序列中,可以使用in運算符

>>> provinces =['HeNan','HeBei','ShanDong','ShanXi','HuNan','HuBei','Jiangxi','Afuhan']

>>> 'AnHui' inprovinces

False

>>> 'HeNan' inprovinces

True

?

3.3.7?????? 長度、最大值、最小值

長度:len

最大值:max

最小值:min

>>> len('What is yourname?')

18

>>> num =[100,200,300,250]

>>> len(num)

4

>>> max(num)

300

>>> min(num)

100

?

3.4????????? 列表的基本操作

3.4.1?????? 元素賦值

>>> x = [1,1,1]

>>> x[1] = 2

>>> x

[1, 2, 1]

?

3.4.2?????? 刪除元素

>>> provinces

['HeNan', 'HeBei', 'ShanDong','ShanXi', 'HuNan', 'HuBei', 'Jiangxi', 'Afuhan']

>>> del provinces[-1]

>>> provinces

['HeNan', 'HeBei', 'ShanDong','ShanXi', 'HuNan', 'HuBei', 'Jiangxi']

?

3.4.3?????? 分片賦值

>>> num = [1,2,3,4,5]

>>> num[3:] = [6,7]

>>> num

[1, 2, 3, 6, 7]

?

插入新元素

>>> num[3:3] =[4,5]

>>> num

[1, 2, 3, 4, 5, 6, 7]

?

分片刪除

>>> del num[1:4]

>>> num[1:4] =[]

>>> num

[1, 5, 6, 7]

?

3.4.4?????? 列表的方法

1)追加append

>>> num =[1,2,3]

>>>num.append(4)

>>> num

[1, 2, 3, 4]

?

2)統計次數count

>>>['to','be','or','not','to','be'].count('to')

2

?

3)在列表末尾一次性追加另一個列表的多個值extend

>>> a = [1,2,3]

>>> b = [4,5,6]

>>> a.extend(b[1:3])

>>> a

[1, 2, 3, 5, 6]

?

4)顯示列表中某個值第一個匹配項的索引位置index

>>> aaa =['Today','is','a','nice','day']

>>> aaa.index('nice')

3

?

5)將對象插入到列表中insert

>>> num =[1,2,3,4,5,6]

>>>num.insert(3,'four')

>>> num

[1, 2, 3, 'four', 4, 5, 6]

?

6)移除列表中的一個元素(默認是最后一個),并且返回該元素的值

>>> x = [1,2,3]

>>> x.pop()

3

?

7)移除列表中某個值的第一個匹配項remove

>>> x =? ['to','be','or','not','to','be']

>>>x.remove('be')

?

8)將列表中的元素反向存放reverse

>>> x

['to', 'or', 'not', 'to','be']

>>> x.reverse()

>>> x

['be', 'to', 'not', 'or','to']

?

9)排序sort和sorted

>>> x =[3,7,4,64,23,71,2]

>>> x.sort()

>>> x

[2, 3, 4, 7, 23, 64, 71]

?

>>> sorted(x)

[2, 3, 4, 7, 23, 64, 71]

?

兩者的區別在于sort不返回生成的列表值,sorted返回列表值

?

3.5????????? 元組

元組也列表一樣,也是一種序列。唯一的不同是元組不能修改。

語法

(元素1,元素2,……,元素n)

?

空元組可以用沒有包含內容的兩個圓括號來表示

()

?

如果要創建包括一個值的元組,必須加上逗號

(42,)

?

加上逗號和不加逗號代表的含義完全不同

?

>>> 3*(42)

126

>>> 3*(42,)

(42, 42, 42)

?

?

補充1:

格式化字符串的使用方法:

1)%字符:標記轉換說明符的開始

2)轉換標志(可選):

標志

含義

-

左對齊

+

轉換值之前加上正負號

“”

空白字符

0

轉換值若位數不夠則用0填充

3)最小字段寬度(可選):轉換后的字符串至少應該具有該值指定的寬度。如果是*,則寬度會從值元組中讀出

4)點(.)后跟精度值(可選):如果轉換的是實數,精度值就表示出現在小數點后的位數。如果是字符串,那么該數字就表示最大字段寬度。如果是*,那么精度將會從元組中讀出。

5)轉換類型

常見類型表

轉換類型

含義

d

轉換10進制的數字

f

十進制浮點數

r

字符串(使用repr轉換任意python對象)

s

字符串(使用str轉換任意python對象)

?

例1:簡單轉換

>>> name = '孫悟空'

>>> print '齊天大圣%s' % name

齊天大圣孫悟空

?

例2:控制字段寬度

>>> print '%30s孫悟空' % name

????????????????? 齊天大圣孫悟空

?

例3:控制字段精度

針對數字指定小數位數

>>> from mathimport pi

>>> pi

3.141592653589793

>>> print '%.2f'% pi

3.14

針對字符確定最大寬度

>>> name = 'What is your name'

>>> print '%s' % name

What is your name

>>> print '%.10s' % name

What is yo

?

例3:使用*表示字段的寬度和精度

>>> print '%s' %name

What is your name

>>> print'%*.*s' % (20,10,name)

????????? What is yo

?

例4:左對齊

>>> print'%-*s%*s' % (30,'Goods',30,'Prices')

Goods????????????????????????????????????????????????Prices

?

補充2:

常見字符串的方法

1)find

find 方法可以在一個較長的字符串中查找子串。它返回子串所在位置的最左端索引,如果沒有找到則返回-1

>>> title ='welcome to hero alliance'

>>>title.find('hero')

11

>>>title.find('heros')

-1

?

2)lower

lower用來將字符串轉換為小寫格式(可以在腳本中設置忽略大小寫的操作)

>>> name='SunWUKOng'

>>> name.lower()

'sunwukong'

?

3)title

title用來將字符串轉換為標題,每個單詞的首字母大寫,其他字母小寫

>>>title.title()

'Welcome To HeroAlliance'

?

title處理以下結果是達不到想要效果

>>> hero ="I'm rm"

>>> hero.title()

"I'M Rm"

?

可以使用插入string模塊,使用capwords函數

>>> string.capwords(hero)

"I'm Rm"???

?

4)replace

replace對字符串進行替換,并返回替換后的結果

>>> title

'welcome to heroalliance'

>>>title.replace('alliance','kingdom')

'welcome to hero kingdom'

?

5)split

split用來將字符串分割成序列,默認以空格作為分隔符,可以手動指定

>>> title.split()

['welcome', 'to', 'hero', 'alliance']

>>> '1+2+3+4+5'.split('+')

['1', '2', '3', '4', '5']

?

6)strip

strip刪除字符串兩側的空格(不包含內部空格),并返回結果

>>> name = raw_input("What is yourname? ").strip()

What is your name???? rm

>>> name

'rm'

?

如果希望創建一個不區分大小寫,而且自動去除用戶誤輸入的空格字符的變量,可以通過strip和lower相互結合使用

>>> name = raw_input('What is your name?').strip().lower()

What is your name????? RM

>>> name

'rm'

?

?

?

學習過程中如果問題,請留言。更多內容請加:
學神IT-linux講師-RM老師QQ:2805537762
學神IT-戚老師QQ:3341251313
學神IT-旭斌QQ:372469347
學神IT教育RHEL7交流群:468845589


?

?

?

?

?


轉載于:https://blog.51cto.com/xuegodlinux/1734387

總結

以上是生活随笔為你收集整理的【学神-RHEL7】P4-Python列表操作和字符串的常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。