程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python學習(三):字符串切片&分割&合並&駐留機制&字符串方法&可變字符串&基本運算符&序列&切片操作&列表

編輯:Python

Python學習今日分享:

字符串切片&分割&合並&駐留機制&字符串方法&可變字符串&基本運算符&序列&切片操作&列表

讓我們先了解一下方法:






案例代碼:


# 字符串切片slice操作(截取字符串)
a = "abcdef"
#打印的結果為:bcde,數組下標從0開始
#格式:[起始偏移量start:終止偏移量end:步長step]
print(a[1:5])
print(a[:3])
#步長為1時正常
print(a[1:5:1])
#步長為2時為每兩個字符打印一個字符
print(a[1:5:2])
#反向提取
print(a[::-1])
# split()分割和join合並
# 使用join拼接比使用“+”拼接效率高
a = "w am x"
# 打印結果:['w', 'am', 'x']
print(a.split())
b = a.split()
# 打印結果:w*am*x
print("*".join(b))
# 字符串駐留機制和字符串比較
# 字符串駐留:僅保存一份相同且不可變字符串的方法,不同的值被存放在字符串駐留池中。Python支持字符串駐留機制,
# 對於符合標識符規則的字符串(僅包含下劃線(_),字母和數字)會啟用字符串駐留機制
a = "aba_3"
b = "aba_3"
print(a is b)
c = "dd#?"
d = "dd#?"
print(c is d)
# 成員操作符
# in/ not in 關鍵字,判斷某個字符(子字符串)是否存在於子字符串中
a = "abc"
b = "a"
# 打印結果為true
print(b in a)
# 字符串常用方法匯總
a = "我的測試文檔as"
# 字符串長度
print(len(a))
# 以指定字符串開頭
print(a.startswith("我"))
# 以指定字符串結尾
print(a.endswith("文檔"))
# 第一次出現指定字符串的位置
print(a.find("的"))
# 最後一次出現指定字符串的位置
print(a.rfind("的"))
# 指定字符串出現了幾次
print(a.count("我"))
# 所有字符全是字母或數字
print(a.isalnum())
# 字母全大寫
print(a.upper())
# 字母全小寫
print(a.lower())
# 去除首尾的空格
print(" sex ".strip())
# 去除左邊的*
print("*sex*".lstrip("*"))
# 去除右邊的*
print("*sex*".rstrip("*"))
# 格式排版
a = "sex"
# 居中 打印結果為:***sex****
print(a.center(10, "*"))
# 居右 打印結果為: *******sex
print(a.rjust(10, "*"))
# 居左 打印結果為:sex*******
print(a.ljust(10, "*"))
# 字符串 format格式化
a = "name={0},age={1}"
print(a.format("大腳", 11))
# ^ . < . > 分別是居中,左對齊,右對齊
print("我是。。。,我喜歡數字{0:*^8}".format("666"))
# 可變字符串
# 導入模塊
import io
s = "hekko"
sio = io.StringIO(s)
# 拿值
print(sio.getvalue())
sio.seek(2)
sio.write("厲")
# 打印的結果為: he厲ko
print(sio.getvalue())
# 基本運算符
a = 3
# 打印的結果為24 1 小乘大除
print(a << 3)
print(a >> 1)
# 序列
# 序列是一種數據存儲方式,用來存儲一系列的數據,在內存中,序列
# 就是一塊用來存放多個值的連續的內存空間
# python 的列表大小可變,根據需要隨時增加或縮小
# 列表的創建
# 基本語法[]創建
a = [100, 200, "細節"]
# 創建一個空的列表對象
b = []
b.append(200)
print(b)
# list()創建
a = list()
a = list(range(10))
# 打印的結果為[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a)
a = list("w")
# 打印的結果為: ['w']
print(a)
# 通過range()創建整數列表
# range(起始數字,結尾數字,步長)
print(list(range(0, 5, 1)))
# 推導式生成列表
a = [x*2 for x in range(5)]
# 打印結果為:[0, 2, 4, 6, 8]
print(a)
# 通過if 過濾元素
print([x*2 for x in range(100) if x%9 == 0])
# 列表元素的增加和刪除
# 當列表增加和刪除元素時,列表會自動進行內存管理,大大減少了程序員的負擔。但這個特點涉及列表元素的大量移動,效率較低,除非必要,
# 我們一般只在列表的尾部添加元素或刪除元素,這會大大提高列表的操作效率
# append()方法
# 原地修改列表對象,是真正的列表尾部添加新的元素,速度最快,推薦使用
a.append(20)
# 打印結果為: [0, 2, 4, 6, 8, 20]
print(a)
# +運算符操作
# 並不是真正的尾部添加元素,而是創建新的列表對象;將原列表的元素和新列表的元素依次復制到新的列表對象中,這樣會涉及大量的復制操作,對於操作大量元素不建議使用.
# 2184225837376
# 2184225745152
# 地址發生變化,也就是創建了新的對象
print(id(a))
a = a+[10]
print(id(a))
# extend() 方法
# 將目標列表的所有元素添加到本列表的尾部,屬於原地操作,不創建新的列表對象
# 1368885487872
# 1368885487872
# 地址未發生改變
print(id(a))
a.extend([10])
print(id(a))
# insert()插入元素
# 使用insert方法可以將制定元素插入到列表的任意制定位置。這樣會插入位置後面所有的元素進行移動,會影響處理速度。涉及大量元素時,盡量避免使用。
# 類似發生這種移動的函數還有:remove(),pop(),del(),他們在刪除非尾部元素時也會發生操作位置後面元素的移動
a.insert(0, 100)
# 打印結果為:[100, 0, 2, 4, 6, 8, 20, 10, 10]
print(a)
# 乘法擴展
# 使用乘法擴展列表,生成一個新列表,新列表元素時原列表元素的多次重復
print(a*3)
# 列表元素的刪除
# del 刪除
a = [10, 10, 20]
print(a)
del a[2]
print(a)
# pop()方法
# pop()刪除並返回指定位置元素,如果未指定位置則默認操作列表最後一個元素
a = [10, 20]
a.pop(0)
print(a)
# remove()方法
# 刪除首次出現的指定元素,若不存在該元素拋出異常
a = [10, 20, 30, 20]
a.remove(20)
# 打印結果為 :[10, 30, 20]
print(a)
# 列表元素的訪問和計數
# 通過索引直接訪問元素
a = [10, 20, 10, 30]
print(a[2])
# index()獲得指定元素在列表中首次出現的索引
print(a.index(10))
# 從a[1]開始找
print(a.index(10, 1))
# count()獲得指定元素在列表中出現的次數
# 打印的結果為2
print(a.count(10))
# len()返回列表長度
# 打印結果:4
print(len(a))
# 成員資格判斷
# 判斷列表中是否存在指定的元素,我們可以使用count()方法,返回0則表示不存在,返回大於0則存在.但是,我們一般會使用更加簡潔的in關鍵字來判斷,直接返回true或false
print(220 in a)
# 切片操作
# 切片是Python序列及其重要的操作,適用於列表,元組,字符串等等
# 包頭不包尾
a = [10, 20, 30, 40, 50]
# 打印結果為:[20, 30]
print(a[1:3:1])
# 打印的結果為: [40, 50]
print(a[-2:])
# 打印的結果為:[50, 40, 30, 20, 10]
print(a[::-1])
# 列表的遍歷
for obj in a:
print(obj)
# 列表排序
# 修改原列表,不建新列表的排序
a = [20, 10, 30]
a.sort()
# 打印結果:[10, 20, 30]
print(a)
a.sort(reverse=True)
# 降序 打印結果為:[30, 20, 10]
print(a)
import random
# 打亂順序
random.shuffle(a)
print(a)
# 建新列表的排序
# 我們也可以通過內置對象函數sorted()進行排序,這個方法返回新列表,不對原列表做修改
a = [20, 30, 10, 50]
# 默認升序
a = sorted(a)
print(a)
a = sorted(a, reverse=True)
print(a)
# reversed()返回迭代器
# 內置函數reversed()也支持進行逆序排序,與列表對象reverse()方法不同的是,
# 內置函數reversed()不對原列表做任何修改,只是返回一個逆序排序的迭代器對象
a = [20, 10, 30]
b = reversed(a)
print(b)
print(list(b))
# 列表相關的其他內置函數匯總
# max 和 min
# 最大值
print(max(a))
# 最小值
print(min(a))
# 和 有非數字則會報錯
print(sum(a))

今天的分享就到這裡啦!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved