標籤:ring 資料 sub 出現 max 索引 標題 舉例 copy
深淺拷貝
- ==比較的是資料內容,如果是True意義為內容相同,引用並不同
- =操作執行後,前後兩個元素的引用地址相同
淺拷貝
copy() -> List
深拷貝
- 完全拷貝。包括參考型別
from copy import deepcopy
lst2=deepcopy.(lst)
隨機數
import random
randint(a, b)
返回[a, b]之間的整數,閉區間
choice(seq)
從非空序列的元素中隨機挑選一個元素,比如
random.choice(range(10))
,從0到9中隨機挑選一個整數。
random.choice([1,3,5,7])
randrange ([start,] stop [,step])
- 從指定範圍內,按指定基數遞增的集合中擷取一個隨機數,基數預設值為1。
random.randrange(1,7,2)
前閉後開
random.shuffle(list) ->None
就地打亂列表元素
sample(population, k)
從樣本空間或總體(序列或者集合類型)中隨機取出k個不同的元素,返回一個新的列表
元組
有序的元素集合
初始化:
t=tuple()
t=()
t=(1,)
- 元組查詢與列表類似
元組元素不可修改
注意:
對於包含複雜物件的元組,其指向複雜物件的引用地址不可更改,但複雜物件的資料內容可更改
namedtuple
from collections import namedtuple
Point=namedtuple(‘Point‘,[‘x‘, ‘y‘])
#Point=namedtuple(‘Point‘,‘x y‘) 第二種寫法
p1=Point(11,12)
print(p1.x,p1.y)
部分源碼:
if isinstance(field_names, str):
field_names = field_names.replace(‘,‘, ‘ ‘).split()
field_names = list(map(str, field_names))
typename = str(typename)
字串
字串對象不可變
使用‘ ‘、" "、‘‘‘ ‘‘‘包圍的字元序列
舉例
s1 = ‘string‘
s2 = "string2"
s3 = ‘‘‘this‘s a "String" ‘‘‘
s4 = ‘hello \n magedu.com‘
s5 = r"hello \n magedu.com"
s6 = ‘c:\windows\nt‘
s7 = R"c:\windows\nt"
s8 = ‘c:\windows\nt‘
sql = """select * from user where name=‘tom‘ """
字串支援使用索引訪問
可迭代
join串連
"string".join(iterable) -> str
將可迭代對象的每一個元素用string串連起來
返回一個新字串對象
+
串連兩個字串
返回一個新字串對象
字串分割
split(sep=None, maxsplit=-1) -> list of strings
從左至右
sep 指定分割字串,預設的情況下空白字串作為分隔字元
maxsplit 指定分割的次數,-1 表示遍曆整個字串
rsplit(sep=None, maxsplit=-1) -> list of strings
從右向左
splitlines([keepends]) -> list of strings
按照行來切分字串
keepends 指的是是否保留行分隔字元
行分隔字元包括\n、\r\n、\r等
partition(sep) -> (head, sep, tail)
從左至右,遇到分隔字元就把字串分割成兩部分,返回頭、分隔字元、尾三部分的三元組;
如果沒有找到分隔字元,就返回頭、2個空元素的三元組
sep 分割字串,必須指定
字串大小寫
upper()
全大寫
lower()
全小寫
大小寫,做判斷的時候用
swapcase()
互動大小寫
字串排版
title() -> str
標題的每個單詞都大寫
capitalize() -> str
首個單詞大寫
center(width[, fillchar]) -> str
width 列印寬度
fillchar 填充的字元
zfill(width) -> str
width 列印寬度,居右,左邊用0填充
ljust(width[, fillchar]) -> str
靠左對齊
rjust(width[, fillchar]) -> str
靠右對齊
字串修改
replace(old, new[, count]) -> str
字串中找到匹配替換為新子串,返回新字串
count表示替換幾次,不指定就是全部替換
strip([chars]) -> str
從字串兩端去除指定的字元集chars中的所有字元
如果chars沒有指定,去除兩端的空白字元
lstrip([chars]) -> str
從左開始
rstrip([chars]) -> str
從右開始
find(sub[, start[, end]]) -> int
在指定的區間[start, end),從左至右,尋找子串sub。找到返回索引,沒找到返回-1
rfind(sub[, start[, end]]) -> int
在指定的區間[start, end),從右至左,尋找子串sub。找到返回索引,沒找到返回-1
index(sub[, start[, end]]) -> int
在指定的區間[start, end),從左至右,尋找子串sub。找到返回索引,沒找到拋出異常ValueError
rindex(sub[, start[, end]]) -> int
在指定的區間[start, end),從左至右,尋找子串sub。找到返回索引,沒找到拋出異常ValueError
count(sub[, start[, end]]) -> int
在指定的區間[start, end),從左至右,統計子串sub出現的次數
字串判斷
endswith(suffix[, start[, end]]) -> bool
在指定的區間[start, end),字串是否是suffix結尾
startswith(prefix[, start[, end]]) -> bool
在指定的區間[start, end),字串是否是prefix開頭
is系列
isalnum() -> bool
是否是字母和數字組成
isalpha()
是否是字母
isdecimal()
是否只包含十進位數字
isdigit()
是否全部數字(0~9)
isidentifier()
是不是字母和底線開頭,其他都是字母、數字、底線
islower()
是否都是小寫
isupper()
是否全部大寫
isspace()
是否只包含空白字元
python內建資料結構