1. 程式人生 > 其它 >python字串基礎操作

python字串基礎操作

Python中可以使用一對單引號''或者雙引號""生成字串。

分割
s.split()將s按照空格(包括多個空格,製表符\t,換行符\n等)分割,並返回所有分割得到的字串。
input:

line = "1 2 3 4  5"
numbers = line.split()
print (numbers)

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

s.split(sep)以給定的sep為分隔符對s進行分割。
input:

line = "1,2,3,4,5"
numbers = line.split(',')
print (numbers)

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


連線
與分割相反,s.join(str_sequence)的作用是以s為連線符將字串序列str_sequence中的元素連線起來,並返回連線後得到的新字串:

input:

s = ' '
s.join(numbers)

output:
'1 2 3 4 5'

input:

s = ','
s.join(numbers)

output:
'1,2,3,4,5'

替換
s.replace(part1, part2)將字串s中指定的部分part1替換成想要的部分part2,並返回新的字串。
input:

s = "hello world"
s.replace('world', 'python')

output:


'hello python'

此時,s的值並沒有變化,替換方法只是生成了一個新的字串。
input:
print(s)
output:
'hello world'

大小寫轉換
s.upper()方法返回一個將s中的字母全部大寫的新字串。
s.lower()方法返回一個將s中的字母全部小寫的新字串。
input:
"hello world".upper()
output:
'HELLO WORLD'


這兩種方法也不會改變原來s的值:
input:

s = "HELLO WORLD"
print (s.lower())
print (s)

output:

hello world
HELLO WORLD

去除多餘空格


s.strip()返回一個將s兩端的多餘空格除去的新字串。
s.lstrip()返回一個將s開頭的多餘空格除去的新字串。
s.rstrip()返回一個將s結尾的多餘空格除去的新字串。
input:

s = "  hello world   "
s.strip()

output:
'hello world'
s的值依然不會變化

更多方法
可以使用dir函式檢視所有可以使用的方法:
input:
dir(s)


多行字串
Python 用一對 """ 或者 ''' 來生成多行字串:
input:

a = """hello world.
it is a nice day."""
print (a)

output:

hello world.
it is a nice day.

強制轉換為字串
str(ob)強制將ob轉化成字串。
repr(ob)也是強制將ob轉化成字串。

整數與不同進位制的字串的轉化
可以將整數按照不同進位制轉化為不同型別的字串。
可以指定按照多少進位制來進行轉換,最後返回十進位制表達的整數:
input:
int('377', 8)
output:
255

索引
對於一個有序序列,可以通過索引的方法來訪問對應位置的值。字串便是一個有序序列,Python 使用 下標 來對有序序列進行索引。索引是從 0 開始的,所以索引 0 對應與序列的第 1 個元素。
input:

s = "hello world"
s[0]

output:
'h'
Python中索引是從 0 開始的,所以索引 0 對應與序列的第 1 個元素。為了得到第 5 個元素,需要使用索引值 4 。


除了正向索引,Python還引入了負索引值的用法,即從後向前開始計數,例如,索引 -2 表示倒數第 2 個元素:
input:
s[-2]
output:
'l'

分片
分片用來從序列中提取出想要的子序列,其用法為:
var[lower:upper:step]
input:
s[1:3]
output:
'el'
分片中包含的元素的個數為 3-1=2 。也可以使用負索引來指定分片的範圍,區間為左閉右開。
lower和upper可以省略,省略lower意味著從開頭開始分片,省略upper意味著一直分片到結尾。
input:
s[:3]
output:
'hel'

每隔兩個取一個值:
input:
s[::2]
output:
'hlowrd'
當step的值為負時,省略lower意味著從結尾開始分片,省略upper意味著一直分片到開頭。
input:
s[::-1]
output:
'dlrow olleh'