python---[列表]lsit

內置數據結構(變量類型)

  -list

  -set

  -dict

  -tuple

    -list(列表)

      -一組又順序的數據組合

      -創建列表

        -空列表

        list1 = []
        print(type(list1))
        print(list1)

        list2 = [100]
        print(type(list2))
        print(list2)

        list3 = [2, 3, 1, 4, 6, 5, 6]
        print(type(list3))
        print(list3)

        list4 = list()
        print(type(list4))
        print(list4)


        運行結果:
        <class 'list'>
        []
        <class 'list'>
        [100]
        <class 'list'>
        [2, 3, 1, 4, 6, 5, 6]
        <class 'list'>
        []

    -列表常用操作

      -訪問

        -使用下表操作

        -列表的位置是從0開始

        list1 = [2, 3, 1, 4, 6, 5, 6]
        print(list1[3])

        print(list1[0])

        

        運行結果:

        4

        2

    -分片操作

    -注意截取的范圍, 包含左邊的下標值,不包含右邊的下標值

    -下標值可以為空,如果不寫左邊下標值默認為0,右邊下標值最大數加一,即表示截取最后一個數據

      list1 = [2, 3, 1, 4, 6, 5, 6]
      print(list1[:])
      print(list1[:4])
      print(list1[3:])

      運行結果:

      [2, 3, 1, 4, 6, 5, 6]
      [2, 3, 1, 4]
      [4, 6, 5, 6]

      

      -分片可以控制增長幅度,默認增長幅度為1

      list1 = [2, 3, 1, 4, 6, 5, 6]
      print(list1[:])
      print(list1[1:6:1])
      print(list1[1:6:2])

      運行結果:

      [2, 3, 1, 4, 6, 5, 6]
      [3, 1, 4, 6, 5]
      [3, 4, 5]

      

      -下標可以超出范圍,超出后不在考慮多余下表內容

      list1 = [2, 3, 1, 4, 6, 5, 6]
      print(list1[2:10])

      運行結果:

      [1, 4, 6, 5, 6]

?

      -下標值, 增長幅度可以為負數

      -為負數,表明順序是從右往左

      -規定:數組最后一個數字的下標是-1

      

      -分片之負數下標

      -默認分片總是從左往右截取

      -即正常情況,分片左邊的值一定小于右邊的值

      list1 = [2, 3, 1, 4, 6, 5, 7]
      print(list1[-2:-4])
      print(list1[-4:-2])
      print(list1[-2:-4:-1])
      print(list1[-3:-5:-1])

      運行結果:

      []
      [4, 6]
      [5, 6]
      [6, 4]

?

      -分片操作是生成要給新的list

        -內置函數id,負責顯示一個變量或者數據的唯一確定編號

        a = 100
        b = 200
        print(id(a))
        print(id(b))
        c = a
        print(id(c))

        運行結果:

        1967290496
        1967293696
        1967290496
        100

        -通過id可以直接判斷出分片是從新生成了一份數據還是使用的同一份數據

        

        -如果兩個id之一樣,則表明分片產生的列表是使用的同一地址同一份數據

        -否則,則表明分片是重新生成了一份數據,即一個新的列表,然后把數據拷貝到新列表中

          -通過id知道,list2和list3是同一份數據,驗證代碼如下:

          list1 = [2, 3, 1, 4, 6, 5, 7]
          list2 = list1[:]
          list3 = list2
          print(id(list1))
          print(id(list2))
          print(id(list3))

          list1[0] = 100
          print(list1)
          print(list2)
          list2[1] = 100
          print(list2)
          print(list3)

          運行結果:

          2252262765960
          2252261913544
          2252261913544
          [100, 3, 1, 4, 6, 5, 7]
          [2, 3, 1, 4, 6, 5, 7]
          [2, 100, 1, 4, 6, 5, 7]
          [2, 100, 1, 4, 6, 5, 7]

- List(列表)

 1  1 # del刪除
 2  2 # 如果使用del之后, id的值和刪除錢不一樣, 則說明刪除生成一個新的list
 3  3 b = [1, 2, 3, 4, 5, 6]
 4  4 print(id(b))
 5  5 del b[2]
 6  6 print(id(b))
 7  7 print(b)
 8  8 # del 一個變量之后不能在繼續使用此變量
 9  9 del b
10 10 print(b)
11 
12 運行結果:
13 2429916837256
14 2429916837256
15 [1, 2, 4, 5, 6]
16 NameError: name 'b' is not defined
del刪除命令
 1 # 列表相加
 2 # 使用加號連接兩個列表
 3 a = [1, 2, 3, 4]
 4 b = [5, 6, 7, 8, 9]
 5 c = ['a', 'b', 'c']
 6 d = a + b + c
 7 print(d)
 8 
 9 運行結果:
10 [1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c']
View Code
1 # 使用乘號操作列表
2 # 列表直接跟一個整數相乘
3 # 相當于把n個列表連接在一起
4 a = [1, 2, 3, 4]
5 b = a * 3
6 print(b)
7 
8 運行結果:
9 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
list相乘
 1 # 成員資格運算
 2 # 就是判斷一個元素是否在list里面
 3 a = [1, 2, 3, 4, 5, 6, 7]
 4 b = 8
 5 c = 5
 6 # 返回一個布爾值
 7 print(b in a)
 8 print(c in a)
 9 運行結果:
10 False
11 True
資格運算
 1 # 成員資格運算
 2 # 就是判斷一個元素是否在list里面
 3 a = [1, 2, 3, 4, 5, 6, 7]
 4 b = 8
 5 c = 5
 6 # 返回一個布爾值
 7 print(b in a)
 8 print(c in a)
 9 print(c not in a)
10 
11 運行結果:
12 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
13 False
14 True
15 False
資格運算

?

?

 1 # for i in list
 2 a = [1, 2, 3, 4, 5]
 3 for i in a:
 4     print(i, end=" ")
 5 print()
 6 
 7 b = ["a", "b", "c", "d"]
 8 for i in b:
 9     print(i, end=" ")
10 print()
11 
12 for i in range(1,10):
13     print(i, end=" ")
14 
15 print(type(range(1, 10)))
16 
17 # while 循環訪問list
18 # 一般不使用while遍歷list
19 c = [1, 2, 3, 4, 5, 6, 7]
20 lenth = len(c)
21 indx = 0
22 while indx < lenth:
23     print(c[indx], end=" ")
24     indx += 1
25 
26 
27 
28 運行結果
29 1 2 3 4 5 
30 a b c d 
31 1 2 3 4 5 6 7 8 9 <class 'range'>
32 1 2 3 4 5 6 7 

?

?

?

 1 # 雙層列表循環
 2 # a 為嵌套列表, 或者叫雙層列表
 3 a = [["one", 1], ["two", 2], ["tree", 3]]
 4 for k, v in a:
 5     print(k, "--", v)
 6 
 7 # b = [["one", 1, "eins"], ["two", 2], ["tree", 3, 4, 5, 6]]
 8 # for k, v in b:
 9 #     print(k, "--", v)
10 # # 不能這么使用
11 
12 c = [["one", 1, "eins"], ["two", 2, "zwei"], ["tree", 3, "drei"]]
13 for k, v, w in c:
14     print(k, "--", v, "--", w)
15 
16 # 列表內涵:list content
17 # 通過簡單的方法創作列表
18 # for 創建
19 a = ['a', 'b', 'c']
20 #用list a創建一個list b 、
21 # 下面代碼的含義是, 對于所有a中的元素, 逐個放入新列表b中
22 b = [i for i in a]
23 print(b)
24 
25 # 對于c中所以元素乘以10, 生成一個新list
26 c = [1, 2, 3, 4, 5]
27 #用list c創建一個list d 、
28 # 下面代碼的含義是, 對于所有c中的元素, 逐個放入新列表d中
29 d = [i*10 for i in c]
30 print(d)
31 
32 # 還可以過濾原來list中的內容并放入新列表
33 # 比如有列表e, 需要把所有e中的偶數生成新的列表f
34 e = [x for x in range(1, 31)]#生成也1,30 的列表
35 # 把f中所以偶數生成一個新列表f
36 f = [m for m in e if m % 2 == 0]
37 print(f)
38 
39 # 列表生成式可以嵌套
40 # 有兩個列表a, b
41 a = [i for i in range(1, 4)]#生成list a
42 print(a)
43 b = [i for i in range(100, 400) if i % 100 == 0]
44 print(b)
45 
46 # 列表生成式可以嵌套, 此時等于倆個for循環嵌套
47 c = [m+n for m in a for n in b]
48 print(c)
49 
50 # 上面代碼類似下面代碼
51 for m in a:
52     for n in b:
53         print(m+n, end="  ")
54 print()
55 # len:求列表長度
56 a = [x for x in range(1, 100)]
57 print(len(a))
58 # max:求列表中的最大值
59 print(max(a))
60 b = ['man', 'film', 'python']
61 print(max(b))
62 
63 # list:將其他格式的數據轉換成list
64 a = [1, 2, 3]
65 print(list(a))
66 s = "I love python"
67 print(list(s))
68 
69 # 把range產生的內容轉換成list
70 print(list(range(12, 19)))

# 關于列表的函數

 1 # 關于列表的函數
 2 
 3 list1 = ['a', 'i love xj', 45, 766, 5+4j]
 4 print(list1)
 5 # append插入一個內容
 6 a = [i for i in range(1,5)]
 7 print(a)
 8 a.append(100)
 9 print(a)
10 # insert:指定位置插入
11 # insert(index, data), 插入位置是insert前面(完成后處于什么位置)
12 a.insert(3, 200)
13 print(a)
14 # del:刪除
15 # pop, 從對應位拿出一個元素, 即把最后一個元素取出來
16 last_ele = a.pop()
17 print(last_ele)
18 print(a)
19 
20 # remove:在列表中刪除指定的值的元素
21 # 如果被刪除的值沒在list中,則報錯
22 # 即, 刪除list指定值的操作應該使用try。。。excepty語句,或者先進行判斷
23 print(id(a))
24 a.remove(200)
25 print(a)
26 print(id(a))

運行結果:
['a', 'i love xj', 45, 766, (5+4j)]
[1, 2, 3, 4]
[1, 2, 3, 4, 100]
[1, 2, 3, 200, 4, 100]
100
[1, 2, 3, 200, 4]
2354949945480
[1, 2, 3, 4]
2354949945480

 1 # clear:清空
 2 a = [1, 2, 3, 4, 5]
 3 
 4 print(a)
 5 print(id(a))
 6 a.clear()
 7 print(a)
 8 print(id(a))
 9 print("--------------")
10 # 如果不需要列表地址保持不變, 則清空列表可以使用以下方式
11 b = [1, 2, 3]
12 print(b)
13 print(id(b))
14 b = list()
15 b = []
16 print(b)
17 print(id(b))

運行結果:
[1, 2, 3, 4, 5]
1834734417288
[]
1834734417288
--------------
[1, 2, 3]
1834734417160
[]
1834734417160  #加上b = list()地址還是保持不變


# 如果不需要列表地址保持不變, 則清空列表可以使用以下方式
b = [1, 2, 3]
print(b)
print(id(b))
# b = list()
b = []
print(b)
print(id(b))


運行結果:
[1, 2, 3]
2191356032264
[]
2191355209608  #不加上b = list()地址會發生改變

?

 1 # reverse:翻轉列表內容,原地翻轉
 2 a = [1, 2, 3, 4, 5]
 3 print(a)
 4 print(id(a))
 5 a.reverse()
 6 print(a)
 7 print(id(a))
 8 
 9 運行結果:
10 [1, 2, 3, 4, 5]
11 1986270295432
12 [5, 4, 3, 2, 1]
13 1986270295432

?

 1 # extend:擴展列表,兩個列表,把一個直接拼接到后一個上
 2 a = [1, 2, 3, 4, 5]
 3 b = [6, 7, 8, 9, 10]
 4 print(a)
 5 print(id(a))
 6 a.extend(b)
 7 print(a)
 8 print(id(a))
 9 運行結果:
10 [1, 2, 3, 4, 5]
11 1657976485256
12 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
13 1657976485256

?

 
 1 # count:返查找列表中指定值或元素的個數
 2 a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 3 print(a)
 4 a.append(8)
 5 a.insert(4, 8)
 6 print(a)
 7 a_len = a.count(8)
 8 print(a_len)
 9 
10 運行結果:
11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
12 [1, 2, 3, 4, 8, 5, 6, 7, 8, 9, 10, 8]
13 3

?

 1 # copy:拷貝, 淺拷貝
 2 # 列表類型變量賦值實例
 3 a = [1, 2, 3, 4, 5, 666]
 4 print(a)
 5 # list類型,簡單賦值操作,是傳地址
 6 b = a
 7 b[-1] = 777
 8 print(a)
 9 print(id(a))
10 print(b)
11 print(id(b))
12 
13 print("*" * 20)
14 b = a.copy()
15 print(a)
16 print(id(a))
17 print(b)
18 print(id(b))
19 
20 print("*" * 30)
21 b[-1] = 888
22 print(a)
23 print(b)
24 
25 運行結果:
26 [1, 2, 3, 4, 5, 666]
27 [1, 2, 3, 4, 5, 777]
28 2546992182664
29 [1, 2, 3, 4, 5, 777]
30 2546992182664
31 ********************
32 [1, 2, 3, 4, 5, 777]
33 2546992182664
34 [1, 2, 3, 4, 5, 777]
35 2546992182536
36 ******************************
37 [1, 2, 3, 4, 5, 777]
38 [1, 2, 3, 4, 5, 888]

?

 
1
# cpoy:拷貝,淺拷貝和深拷貝區別 2 # 出現下面問題是,copy函數是個淺拷貝,即只可拷貝一層內容 3 a = [1, 2, 3, [10, 20, 30]] 4 b = a.copy() 5 print(id(a)) 6 print(id(b)) 7 print(id(a[3])) 8 print(id(b[3])) 9 10 a[3][2] = 666 11 print(a) 12 print(b) 13 14 運行結果: 15 2337052980168  #a和b的id不一樣 16 2337053832456   17 2337053832584  #a和b內部深一層的id是一樣的 18 2337053832584   19 [1, 2, 3, [10, 20, 666]]  20 [1, 2, 3, [10, 20, 666]]

?







?

轉載于:https://www.cnblogs.com/Slxc/p/9705360.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279273.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

喚醒計算機運行此任務_如何停止Windows 8喚醒計算機以運行維護

喚醒計算機運行此任務Windows 8 comes with a new hybrid boot system, this means that your PC is never really off. It also means that Windows has the permission to wake your PC as it needs. Here’s how to stop it from waking up your PC to do maintenance tasks…

轉整型_SPI轉can芯片CSM300詳解、Linux驅動移植調試筆記

一口君最近移植了一款SPI轉CAN的芯片CSM300A&#xff0c;在這里和大家做個分享。一、CSM300概述CSM300(A)系列是一款可以支持 SPI / UART 接口的CAN模塊。1. 簡介CSM300(A)系列隔離 SPI / UART 轉 CAN 模塊是集成微處理器、 CAN 收發器、 DC-DC 隔離電源、 信號隔離于一體的通信…

matlab練習程序(二值圖像連通區域標記法,一步法)

這個只需要遍歷一次圖像就能夠完全標記了。我主要參考了WIKI和這位兄弟的博客&#xff0c;這兩個把原理基本上該介紹的都介紹過了&#xff0c;我也不多說什么了。一步法代碼相比兩步法真是清晰又好看&#xff0c;似乎真的比兩步法要好很多。 代碼如下&#xff1a; clear all; c…

pc微信不支持flash_在出售PC之前,如何取消對Flash內容的授權

pc微信不支持flashWhen it comes to selling your old digital equipment you usually should wipe it of all digital traces with something like DBAN, however if you can’t there are some precautions you should take–here’s one related to Flash content you may h…

博客在線——Wireshark基本用法

http://blog.jobbole.com/ http://blog.jobbole.com/70907/轉載于:https://www.cnblogs.com/zhongbokun/p/9709326.html

繪制三維散點圖_SPSS統計作圖教程:三維散點圖

作者&#xff1a;豆沙包&#xff1b;審稿&#xff1a;張耀文1、問題與數據最大攜氧能力是身體健康的一項重要指標&#xff0c;但檢測該指標成本較高。研究者想根據性別、年齡、體重、運動后心率等指標建立預測最大攜氧能力的模型&#xff0c;招募了100名研究對象&#xff0c;測…

【Python】插入sqlite數據庫

import sqlite3 from datetime import datetimeconn sqlite3.connect(data.db) print("Opened database successfully")for i in range(100):time datetime.now()conn.execute("INSERT INTO test(time,url,imgPath) VALUES (?,?,?)", (time, "ww…

java數組轉list(Arrays .asList)

習慣性的錯誤代碼&#xff1a; Integer[] intArr {1,2,3}; List<Integer> lst Arrays .asList(intArr); lst.add(4); 報UnsupportedOperationException異常&#xff0c;原因是Arrays .asList() 返回的固定大小的列表&#xff0c;無法進行add、remove等操作&#xff1b;…

使用lodash防抖_什么,lodash 的防抖失效了?

戳藍字「前端技術優選」關注我們哦&#xff01;作者&#xff1a;yeyan1996https://juejin.im/post/6892577964458770445應某人的要求被迫營業&#xff0c;望各位看官不要吝嗇手中的贊-。-背景在使用 uni-app 開發小程序時&#xff0c;有個填寫表單的需求&#xff0c;包含兩個輸…

Ubuntu 12.10中的8個新功能,Quantal Quetzal

Ubuntu 12.10 has been released and you can download it now. From better integration with web apps and online services to improvements in Unity, there are quite a few changes – although none of them are huge or groundbreaking. Ubuntu 12.10已發布&#xff0c…

背單詞APP調研分析

前言&#xff1a;隨著我國網絡經濟重心向移動端的轉移&#xff0c;移動教育領域獲得的關注度在持續放大。互聯網的發展和移動設備的普及&#xff0c;我們開始在移動設備上學習&#xff0c;各種學習教育軟件如雨后春筍&#xff0c;越來越多&#xff0c;就背單詞軟件來說&#xf…

linux 提取cpio_Linux提取RPM包文件(cpio命令)詳解

在講解如何從 RPM 包中提取文件之前&#xff0c;先來系統學習一下 cpio 命令。cpio 命令用于從歸檔包中存入和讀取文件&#xff0c;換句話說&#xff0c;cpio 命令可以從歸檔包中提取文件(或目錄)&#xff0c;也可以將文件(或目錄)復制到歸檔包中。歸檔包&#xff0c;也可稱為文…

cdh中使用hue使用教程_我可以在戶外使用Philips Hue燈泡嗎?

cdh中使用hue使用教程Philips Hue lights are great to have in your house, and they can add a lot of convenience to your living space. However, what if you want to use these smart bulbs outdoors in porch lights or flood lights? Will Philips Hue bulbs work pr…

django (三) admin后臺系統

admin后臺系統 1. 安裝MySQL 1,安裝mysql: sudo apt install mysql-server (安裝過程中輸入密碼并牢記) 2,安裝后進入mysql: mysql -u用戶名 -p密碼 mysql -uroot -proot ? 3,在Django中配置和使用mysql數據庫 使用mysql數據庫&#xff0c;settings中配置如下&#xff1a; DAT…

python博客訪問量_史詩級干貨-python爬蟲之增加CSDN訪問量

AI人工智能史詩級干貨-python爬蟲之增加CSDN訪問量史詩級干貨-python爬蟲之增加CSDN訪問量搜索微信公眾號:‘AI-ming3526’或者’計算機視覺這件小事’ 獲取更多算法、機器學習干貨csdn&#xff1a;https://blog.csdn.net/baidu_31657889/github&#xff1a;https://github.com…

弄斷過河電纜_你說的是:剪斷電纜線

弄斷過河電纜Earlier this week we asked you if you’d cut the cable and switched to alternate media sources to get your movie and TV fix. You responded and we’re back with a What You Said roundup. 本周早些時候&#xff0c;我們問您是否要切斷電纜并切換到其他媒…

復制粘貼的句子

Today you do things people will not do,tomorrow you will do things people can not do. 你今天做別人不愿做的事&#xff0c;明天就能做別人做不到的事。轉載于:https://www.cnblogs.com/wensens/p/9723998.html

路由銷毀上一頁_路由器原理(數據通信)

路由&#xff1a;對數據包選擇路徑的過程路由器(也叫網關)智能選擇數據傳輸路由的設備&#xff0c;其端口數量較少&#xff01;功能&#xff1a;連接網絡1.連接異構網絡以太網、ATM網絡、FDDI網絡2.連接遠程網絡局域網、廣域網隔離廣播將廣播隔離在局域網內路由選擇網絡安全地址…

您可能沒有使用的最佳三星Galaxy功能

Samsung packs its flagship phones with a slew of features—some are even better than stock Android. Either way, there are a lot of things on these phones that you may not be using. Here are some of the best. 包三星旗艦手機用的特性-擺有的甚至比普通的Android…

win7更新錯誤0x800b0109_win7更新漏洞后產生0x0000006B藍屏的解決方法圖解

這幾天不少網友在使用win7更新補丁后就藍屏了&#xff0c;代碼為0x0000006b。發生這一藍屏問題的都是安裝了2016年四月份推出的安全更新補丁&#xff0c;安裝后就出現藍屏&#xff0c;有的網友表示沒問題&#xff0c;有的直接藍了。這個藍屏重啟后依舊&#xff0c;安全模式進不…