日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python基础入门系列】第07天:Python 数据结构--序列

發布時間:2023/12/20 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python基础入门系列】第07天:Python 数据结构--序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python內置序列類型最常見的是列表,元組和字符串。(序列是python中最基礎的數據結構,而數據結構是計算機存儲,組織數據的方式。)

另外還提供了字典和集合的數據結構,但他們屬于無順序的數據集合體,不能像前者通過位置索引來訪問數據。python序列中的每個元素都有一個序號(元素的具體位置),這個序號叫索引,索引下標從0開始,以此類推......?

本文著重介紹python的序列及其實際應用,鞏固python語法基礎。

?

?

一、序列概念

?

數據結構:以某種方式組合起來的數據元素的集合。

序列:以編號方式組合起來的數據元素的集合。

?

二、序列特點以及通用操作

  • 索引:通過[n]獲取第n號元素值。n>0索引方向從左向右(0開始),n<0索引方向從右向左(-1開始)。函數調用返回的是序列時,可以直接對其進行索引。

  • 切片:用[a:b:c]訪問 [a,b) 范圍內的元素。a,b,c均可正可負可空。a:起始位,b:結束位,c:步長。?

  • 相加:只可拼接同類型的序列。

  • 相乘:重復序列x次。

  • 檢查:使用in運算符判斷序列中是否有某成員。返回布爾值(True|False)

  • 通用內置函數:len返回序列內元素的個數,min和max分別返回序列內元素的最大值和最小值

    ?

  • ?

    ?

    三、python內置序列1——list

    列表定義

    形如:[a,b,c,d],數據元素可以是另一個序列,元素可修改。

    ?

    列表構建

    list()可以將其它序列轉換為列表。

    ?

    列表基本操作

  • 修改元素:直接選中賦值?ls[1]='e'

  • 刪除元素:del語句?del ls[1]

  • 批量修改元素:使用切片賦值增刪改原有數據元素 ls[1:1]='ello'

    ?

  • 列表常用方法

  • append:列表末尾添加一個對象(可以是一個列表)

  • clear:只清空,不刪除列表

  • copy:與ls1=ls2不同,ls2=ls1.copy()后修改ls2不影響ls1

  • count:計算元素出現次數

  • extend:列表末尾添加多個值

  • index:查找某元素在列表中出現第一次的索引值

  • insert:列表某個位置添加一個對象 ls.insert(2,'a')

  • pop:刪除一個元素并返回該元素,默認為刪除末尾元素?

    后進先出:ls.append(ls.pop())

    先進先出:ls.append(ls.pop(0)) | ls.insert(0,ls.pop())

  • remove:刪除列表中第一次出現的指定元素

  • reverse:相反排序,反轉。

    reversed(ls)函數返回一個迭代器,list(reversed(ls))可以轉換為列表

  • sort:排序sort(key,reverse) key:用于排序的函數,reverse:True(降序) | False(升序)。sorted(ls,key,reverse),sorted返回列表

    ?

    ?

  • 四、python內置序列2——tuple

    元組定義

    形如:(a,b,c,d),元素不可修改。

    元組構建

    單值:1, | (1)

    多值:1,2,3 | (1,2,3)

    tuple()將其它序列轉換為元組

    元組作用

    python很多內置函數和方法返回元組,可作為映射中的鍵。

    五、python內置序列3——字符串

    字符串定義

    形如:‘abcd’,元素不可修改。

    字符串構建

    join()方法可以合并序列為字符串,sep.join(seq):seq各元素間由sep相接,合并為一個字符串

    字符串常用方法

  • count:統計

  • find:查找某字符串是否存在,不存在返回-1

  • replace:參數:(替換的字符,替換的內容,替換的次數)

  • strip:去除左右空格,lstrip/rstrip去左空格/去右空格

  • 分割:split(字符,次數)返回列表。partition(),只分割第一次出現的位置,分割內容本身也在元組內單獨為一個元素,返回元組

  • 大小寫:capitalize()第一個字符大寫,title()字符串每個單詞首字母大寫,lower()/upper()全小寫/全大寫

  • 判斷:startwith/endwith:判斷開頭結尾字符。isalpha/isalnum/isdigit/isspace:判斷字符串全為字母/字母+數字/全為數字/全為空

  • ?

    使用序列示例概覽:

    #定義一個學生序列
    >>> stuinfo=['liuwang','xuezhang','zuishuai',18,20]

    列表相加:

    #定義學生姓名和學生年齡,然后再定義一個屬于自己的數據庫將兩個列表加入

    >>> stuname=['liuwang','xuezhang','zuishuai'] >>> stuage=[18,20,16] >>> database=[stuname,stuage] >>> database [['liuwang','xuezhang','zuishuai'], [18, 20, 16]]

    通用序列操作索引使用:

    ?

    序列中所有元素都有編號,這些編號是從0開始,依次遞增,訪問這些元素通過下標即可訪問,而這個編號就是索引,例如:

    >>> database [['liuwang','xuezhang','zuishuai'], [18, 20, 16]]>>> database[0] ['liuwang', '學長', 'zuishuai'] >>> database[1] [18, 20, 16]



    #字符串序列的索引

    >>> str='hello' >>> str[0] 'h' >>> str[1] 'e'

    ?

    注意兩種索引方式:剛剛我們使用的是0開始的正向索引,

    當使用負數索引時,Python會從右邊到左進行所有,-1是從序列的最后一個元素開始,如下:

    ?

    ? #從最后一個元素開始 >>> str[-1] 'o' #從倒數第二個元素開始 >>> str[-2] 'l'

    ?

    2.切片

    ?

    同樣的和索引類似,切片是通過冒號操作來訪問一定范圍內的元素,例如:

    ?

    # 構建一個序列tag,里面包含一個元素 >>> tag=['https://www.wakemeupnow.cn']# 拿到這個元素后通過分片取出一個范圍的值(示例域名是我的博客嘿嘿) >>> tag[0][8:] 'www.wakemeupnow.cn'

    由上所知,切片操作的的實現需要提供兩個索引作為邊界,是一個左閉右開的區間。

    除了上述方案,也可以通過顯示方式進行操作:

    2.1 切片快捷操作

    >>> num[0:3] # 取到前面3個數據 [1, 2, 3]

    2.2 分片步長操作

    ?

    分片操作可以給元素設置步長,在開始和結束的時候指定相應步長獲取元素,例如:

    ?

    # 按照步長為2返回第1個和第6個之間的元素 >>> num[0:6:2] [1, 3, 5]

    ?

    另外需要注意的是負數步長是從元素尾部到前遍歷整個序列,所以負數的分片開始索引一定要大于結束索引

    >>> num[7:-1] [8, 9]

    當開始索引和結束索引是負數時開始所以必須小于結束索引:

    ?

    >>> num[-9:-1] [2, 3, 4, 5, 6, 7, 8, 9]

    對于一個正數步長,Python會從序列的頭部開始向右提取元素,直達最后一個元素,而對于負數步長,則是從序列的尾部開始向左提取元素,直達提取到第一個,例如:

    # 提取前6個元素,步長為2 >>> num[:6:2] [1, 3, 5] # 提取從后往前的8個元素,步長為2 >>> num[:2:-2] [10, 8, 6, 4]

    3.序列相加

    ?

    序列相加通過加號“+”進行序列和序列之間的連接操作:

    >>> 'hello'+' 學長!' 'hello 學長!'>>> [1,2,3]+['liuwang','學長'] [1, 2, 3, 'liuwang', '學長']

    ?

    注意:只有相同類型的序列才能進行連接操作。

    ?

    4.序列相乘

    ?

    一個數字x乘以一個序列會產生一個新的序列,原來的序列會被重置成x次

    >>> ['hello'+' world !']*3 ['hello world !', 'hello world !', 'hello world !']

    5.成員資格

    ?

    檢查一個元素是否在一個序列中使用運算符in進行檢查, in運算符返回檢查某個條件的布爾值,若為真返回true,否則返回false,例如:

    >>> str='hello' >>> 'h' in str True>>> 'x' in str False

    6.序列長度、最大值和最小值

    ?

    序列長度、最大值和最小值使用內建函數len、max、min進行檢測,len返回序列中所包含的元素數量,max和min分別返回序列中最大值和最小值的元素

    >>> len([11,34,23]) 3 >>> max(11,34,23) 34 >>> min(11,34,23) 11

    總結

    本節給大家介紹了 Python ?數據結構之序列的使用,對 Python 工程師使用提供了支撐,可以在項目中實際應用中取出相應元素,今天的知識別不是很難,但是需要牢牢地鞏固。

    ?

    ?

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的【Python基础入门系列】第07天:Python 数据结构--序列的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。