日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python基礎(chǔ)教程學(xué)習(xí)筆記 第二章 列表和元組

系統(tǒng) 1910 0

1、序列中元素的索引:

  第一個(gè)元素索引是0,第二個(gè)是1,依次遞增
  最后一個(gè)元素索引是-1,倒數(shù)第二個(gè)是-2,依次遞減

2、序列(Sequence)的種類:

  列表(list)、元組(tuple)、字符串(string)、Unicode 字符串、buffer對(duì)象、xrange對(duì)象

3、列表和元組的區(qū)別:列表可以進(jìn)行修改,但是元組不行

4、tuple常作為字典的鍵

5、序列都可以進(jìn)行以下操作:

  索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)、以及檢查元素是否屬于序列(in)、最大值(max)、最小值(min)、長度(len)、迭代器(iterator)等操作

6、序列中也可以包含其他的序列

7、索引

  7.1、第一個(gè)元素的索引是0,第二個(gè)是1,依次遞增;最后一個(gè)元素的索引是-1,倒數(shù)第二個(gè)是-2,依次遞減

  7.2、對(duì)于序列可以直接進(jìn)行索引,而不是一定非要通過變量進(jìn)行索引,如:"Hello"[0],得到H

  7.3、如果一個(gè)函數(shù)返回一個(gè)序列,可直接對(duì)結(jié)果進(jìn)行索引而得到指定的元素

8、分片

  訪問一定范圍內(nèi)的元素

  [start:end:step]:從start索引開始,每隔step個(gè)元素取一個(gè)元素,但是不包括end元素

  [start:end]:從start索引開始,每隔1個(gè)元素取一個(gè)元素,但是不包括end元素

  [start:]:從start索引開始取到結(jié)尾,每隔1個(gè)元素取一個(gè)元素

  [:end]:從0開始,每隔1個(gè)元素取一個(gè)元素,但是不包括end元素

  [:]:取所有元素

  [::step]:從0開始取到結(jié)尾,每隔step個(gè)元素取一個(gè)元素

  [:end:step]:從0開始,每隔step個(gè)元素取一個(gè)元素,取到end前一個(gè)元素

  [start::step]:從start開始,取到結(jié)尾,步長step

  [start:start]:取得start元素

  8.1、step > 0 從前往后取;step < 0 從后往前取;step 不能為0

9、相同類型的序列才能相加,第二個(gè)序列追加到第一個(gè)序列后面,生成新的序列副本

  a = [1,2,3,4,5]

  b = [4,5,6,7,8]

  a + b的結(jié)果是:[1, 2, 3, 4, 5, 4, 5, 6, 7, 8];a、b的內(nèi)容不發(fā)生改變

10、序列乘以一個(gè)數(shù)字N,大小擴(kuò)展為現(xiàn)在N倍,內(nèi)容重復(fù)N倍,如:

  a = [1,2,3,4,5]

  a * 5的結(jié)果是:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5];a的內(nèi)容不發(fā)生改變

11、可以使用in運(yùn)算符一個(gè)對(duì)象是否屬于一個(gè)序列,返回True或者False,例如:

  element1 = 1

  element2 = 'c'

  element3 = "LLO"

  sequence1 = [1,2,3,4,5]

  sequence2 = "abcdefg"

  sequence3 = "HELLOWORLD"

  --------

  >>> element1 in sequence1
  True

  >>> element2 in sequence2
  True

  #下面這個(gè)操作在2.3以上的版本才支持

  >>> element3 in sequence3
  True

12、求最大值、最小值、長度的函數(shù)分別是:max()、min()、len()

13、列表

  13.1、list函數(shù)適用于所有的類型的序列,而不僅僅是字符串:lst = list("Helloworld")

  13.2、"".join(lst)將lst轉(zhuǎn)換為字符串

  13.3、元素賦值:x=[1,2,3,4,5],x[0] = 5;要賦值的元素必須存在,否則報(bào)錯(cuò);賦值之后將修改指定的元素

  13.4、刪除元素:names=["alice","beth","ceil","dee-dee","earl"];del names[2];刪除指定下標(biāo)的元素;刪除之后將影響列表元素

  13.5、分片賦值:name = list("perl")

    >>> name = list("perl")
  >>> name
    ['p', 'e', 'r', 'l']
  >>> name[2:] = "ar"
  >>> name
    ['p', 'e', 'a', 'r']
  >>> name[2:] = "HELLO WORLD"
  >>> name
    ['p', 'e', 'H', 'E', 'L', 'L', 'O', ' ', 'W', 'O', 'R', 'L', 'D']
  >>> name[1:1] = list("12345")
  >>> name
    ['p', '1', '2', '3', '4', '5', 'e', 'H', 'E', 'L', 'L', 'O', ' ', 'W', 'O', 'R', 'L', 'D']
  >>> name[5:] = []
  >>> name
    ['p', '1', '2', '3', '4']

  13.6、列表方法:對(duì)象.方法(參數(shù))

    13.6.1、append():在列表末尾添加元素你,會(huì)修改調(diào)用者并且直接返回

      >>> a = list("12345")
      >>> a
      ['1', '2', '3', '4', '5']
      >>> a.append(6)
      >>> a
      ['1', '2', '3', '4', '5', 6]

    13.6.2、count():返回列表的指定元素的個(gè)數(shù)

      >>> a = list("HelloWorld")
      >>> a.count('l')
      3

    13.6.3、extend():追加一個(gè)列表到調(diào)用者的后面并修改調(diào)用者內(nèi)容

      >>> a = list("Hello ")
      >>> b = list("World")
      >>> a.extend(b)
      >>> a
      ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

    13.6.4、index():指定元素在list中第一次出現(xiàn)的索引,如果元素不存在,會(huì)出現(xiàn)錯(cuò)誤

      >>> a = list("Hello")
      >>> a.index("l")
      2

    13.6.5、insert():插入對(duì)象到列表中

      >>> a = list("Hello")
      >>> a.insert(3,"XINYE")
      >>> a
      ['H', 'e', 'l', 'XINYE', 'l', 'o']

    13.6.6、pop():默認(rèn)彈出最后一個(gè)元素,指定一個(gè)參數(shù)時(shí),刪除指定索引的元素,并返回

      >>> a = list("Hello")
      >>> a.pop()
      'o'
      >>> a.pop(1)
      'e'
      >>> a
      ['H', 'l', 'l']

      pop()方法是唯一一個(gè)能修改列表并且返回列表元素的方法

    13.6.7、常見的數(shù)據(jù)結(jié)構(gòu):棧

      FIFO:First Input First Output,先入先出:入棧――insert(0,元素);出棧――pop()

      LIFO:Last Input First Output,后入先出:入棧――append();出棧――pop(0)

    13.6.8、remove():刪除列表中第一個(gè)匹配項(xiàng),會(huì)修改調(diào)用者,但沒有返回值,如果刪除的元素不存在,則會(huì)報(bào)錯(cuò)

      >>> a = list("HelloWorld")
      >>> a
      ['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
      >>> a.remove("a")
      Traceback (most recent call last):
?       File " ", line 1, in
      ValueError: list.remove(x): x not in list
      >>> a.remove("e")
      >>> a
      ['H', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']

    13.6.9、reverse():反向存放列表,會(huì)修改調(diào)用者

      >>> a = list("Hello")
      >>> a.reverse()
      >>> a
      ['o', 'l', 'l', 'e', 'H']

    13.6.10、reversed()函數(shù):反向存儲(chǔ)序列,生成副本,不會(huì)修改參數(shù)內(nèi)容,但是不會(huì)返回列表,而是返回迭代器,使用list()函數(shù)可以把迭代器轉(zhuǎn)化為list:list(reversed(list))

      >>> a = list("Hello")
      >>> reversed(a)

      >>> a
      ['H', 'e', 'l', 'l', 'o']
      >>> list(reversed(a))
      ['o', 'l', 'l', 'e', 'H']

  13.6.11、sort():改變被排序里誒包,但是不會(huì)返回值

    >>> a = [4,6,2,1,7,9]
    >>> a.sort()
    >>> a
    [1, 2, 4, 6, 7, 9]

  如果不想改變a的內(nèi)容,只想得到一個(gè)副本的排序結(jié)果,則需要先生成一個(gè)a的副本,然后對(duì)這個(gè)副本進(jìn)行排序(副本的生成不能直接賦值哦,因?yàn)橘x值實(shí)際上引用的是同一個(gè)對(duì)象,只能按照以下的方式):

    >>> a = list("hello world")
    >>> b = a[:]
    >>> b.sort()
    >>> a
    ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
    >>> b
    [' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']

  13.6.12、sorted()函數(shù):不修改參數(shù)的內(nèi)容,返回排序的副本

    >>> a = list("hello world")
    >>> b = sorted(a)
    >>> a
    ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
    >>> b
    [' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']

  13.6.13、高級(jí)排序:按照特定的方式進(jìn)行排序

    a.按照compare(x,y)的形式自定義一個(gè)函數(shù)進(jìn)行排序,這個(gè)自定義函數(shù)在x y的時(shí)候返回1;

    默認(rèn)的系統(tǒng)提供了一個(gè)cmp的函數(shù),用來進(jìn)行排序,遵循在x y的時(shí)候返回1的規(guī)則(3.0以上不再支持這個(gè)內(nèi)置函數(shù))

    b.sort方法支持兩個(gè)可選參數(shù)key和reverse

    key制定一個(gè)排序的函數(shù)和cmp類似,但是這個(gè)函數(shù)并不會(huì)直接用來確定對(duì)象的大小,而是為每一個(gè)元素創(chuàng)建一個(gè)鍵,然后根據(jù)鍵來排序,例如要按照元素的長度來進(jìn)行排序,則可以使用len函數(shù)來指定

      r = ["aardvark","abalone","acme","add","aerate"]

      r.sort(key=len)

      排序之后r的內(nèi)容為:['add', 'acme', 'aerate', 'abalone', 'aardvark']

    reverse的值為True或者False,來指明是否進(jìn)行反序排列

      >>> x = [2,8,4,6,5,7,9]
      >>> x.sort(reverse=True)
      >>> x
      [9, 8, 7, 6, 5, 4, 2]

  以上這些都可以通過sorted()函數(shù)進(jìn)行替換

14、元組:不可改變的序列。如果用逗號(hào)分隔開一些值就創(chuàng)建了一個(gè)元組,一般都用圓括號(hào)括起來

  >>> 1,2,3,4,5
  (1, 2, 3, 4, 5)
  >>> a = 1,2,3
  >>> a
  (1, 2, 3)
  >>> a = (1,)
  >>> a
  (1,)

如果想要?jiǎng)?chuàng)建一個(gè)非空元組,必須使用逗號(hào),哪怕只有一個(gè)元素;若要?jiǎng)?chuàng)建空的元組,則直接使用一個(gè)()

tuple([1,2,3])、tuple("123")、tuple((1,2,3))把其他的序列轉(zhuǎn)換為元組

元組可以作為映射的鍵,但是list卻不行,這個(gè)也是元組的主要應(yīng)用場合


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 平武县| 临沂市| 香格里拉县| 武宣县| 肃宁县| 酒泉市| 泰来县| 石门县| 威远县| 陆良县| 惠东县| 佛山市| 和龙市| 开原市| 富源县| 通榆县| 陆丰市| 靖州| 资溪县| 辛集市| 乐昌市| 托克逊县| 武城县| 本溪市| 双牌县| 砚山县| 扎兰屯市| 衡阳县| 阿合奇县| 文化| 当阳市| 祥云县| 盐源县| 双辽市| 彰化县| 油尖旺区| 若羌县| 水富县| 连州市| 集贤县| 旬阳县|