python內建資料結構

來源:互聯網
上載者:User

標籤: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內建資料結構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.