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'