溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python列表list(13)

發(fā)布時間:2020-04-09 11:28:10 來源:網(wǎng)絡 閱讀:420 作者:qq5d6f345f0205e 欄目:編程語言

列表是python開發(fā)過程中最常用的數(shù)據(jù)類型之一,列表俗稱:list?,特點如下:

1.列表由一個或者多個數(shù)據(jù)構(gòu)成,數(shù)據(jù)的類型可以不相同也可以相同;

2.列表中的數(shù)據(jù)需要寫在[]中括號內(nèi)部,數(shù)據(jù)與數(shù)據(jù)之間用逗號隔開;

3.列表是一個有序的集合,下標索引默認重 0 開始,和字符串類似;

python列表list(13)

具體代碼示例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解憂

@Blog(個人博客地址): shuopython.com

@WeChat Official Account(微信公眾號):猿說python

@Github:www.github.com

?

@File:python_list.py

@Time:2019/9/25 20:45

?

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!

"""

?

?

list1?=?list()?#定義一個空列表

print("list1 :",list1)

list2?=?[1,2,3,4]???????????#定義一個整數(shù)類型的列表賦值給list2

print("list2 : %s"?%?list2)

list3?=?["a","b","c"]???????#定義一個字符串類型的列表賦值給list3

print("list3 : {}"?.format(list3))

list4?=?[0,"hello",True]????#定義一個不同數(shù)據(jù)類型的列表賦值給list4

print("list4 : {0}"?.format(list4))

輸出結(jié)果:

1

2

3

4

list1?:?[]

list2?:?[1,?2,?3,?4]

list3?:?['a',?'b',?'c']

list4?:?[0,?'hello',?True]

?

?

python列表list(13)

在python開發(fā)過程,list列表最常用的就是增刪改查,下面跟上代碼一一講解:

一.列表List增加數(shù)據(jù)

一般可以使用append()函數(shù)來為列表list添加數(shù)據(jù),默認將數(shù)據(jù)追加在末尾。示例代碼如下:

1

2

3

4

5

list1?=?list()?#定義一個空列表

print("list1 : ",list1)

list1.append("hello")?# 在列表list的末尾添加字符串 'hello'

list1.append(True)????# 在列表list的末尾添加布爾值 True

print("list1 : ",list1)

輸出結(jié)果:

1

2

list1?:??[]

list1?:??['hello',?True]

?

二.列表List刪除數(shù)據(jù)

列表中的數(shù)據(jù)從左到右,索引值默認重0 開始以此遞增,和字符串的索引值類似,刪除使用?del?關(guān)鍵字,直接列表List時根據(jù)數(shù)據(jù)對應的索引值直接刪除即可,代碼如下:

1

2

3

4

5

6

7

8

list2?=?[1,2,3,4,5,6,7,False,"python"]

print("刪除數(shù)據(jù)之前:{}".format(list2))

del?list2[0]??# 刪除列表中的(索引值等于0)第一個數(shù)據(jù),此時list2 中數(shù)據(jù)為[2,3,4,5,6,7,False,"python"]

print("第一次數(shù)據(jù)之后:{}".format(list2))

del?list2[0]??# 基于上一次的結(jié)果,刪除(索引值等于0)第一個數(shù)據(jù),此時list2 中數(shù)據(jù)為[3,4,5,6,7,False,"python"]

print("第二次數(shù)據(jù)之后:{}".format(list2))

del?list2[3]??# 基于上一次的結(jié)果,刪除(索引值等于3)第四個數(shù)據(jù),此時list2 中數(shù)據(jù)為[3,4,5,7,False,"python"]

print("第三次數(shù)據(jù)之后:{}".format(list2))

輸出結(jié)果:

1

2

3

4

刪除數(shù)據(jù)之前:[1,?2,?3,?4,?5,?6,?7,?False,?'python']

第一次數(shù)據(jù)之后:[2,?3,?4,?5,?6,?7,?False,?'python']

第二次數(shù)據(jù)之后:[3,?4,?5,?6,?7,?False,?'python']

第三次數(shù)據(jù)之后:[3,?4,?5,?7,?False,?'python']

?

三.列表List修改數(shù)據(jù)

直接根據(jù)索引值找到列表中對應的數(shù)據(jù),然后賦值即可。

1

2

3

4

5

6

list2?=?[1,2,3,4,5,6,7,False,"python"]

print("修改數(shù)據(jù)之前:{}".format(list2))

list2[2]?=?False???# 修改列表索引值為2的數(shù)據(jù)(即列表中的第三個數(shù)據(jù)),直接賦值為bool變量 False

print("第一次修改數(shù)據(jù)之后:{}".format(list2))

list2[0]?=?"python"??# 修改列表索引值為0的數(shù)據(jù)(即列表中的第第一個數(shù)據(jù)),直接賦值為bool變量 False

print("第二次修改數(shù)據(jù)之后:{}".format(list2))

輸出結(jié)果:

1

2

3

修改數(shù)據(jù)之前:[1,?2,?3,?4,?5,?6,?7,?False,?'python']

第一次修改數(shù)據(jù)之后:[1,?2,?False,?4,?5,?6,?7,?False,?'python']

第二次修改數(shù)據(jù)之后:['python',?2,?False,?4,?5,?6,?7,?False,?'python']

?

四.列表List查找數(shù)據(jù)

直接根據(jù)索引值找到列表中對應的數(shù)據(jù)即可。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

list2?=?[1,2,3,4,5,6,7,False,"python"]

print(list2[0])?????????????????# 輸出列表中索引值為0的數(shù)據(jù),即第一個元素

print(list2[5])?????????????????# 輸出列表中索引值為5的數(shù)據(jù),即第六個元素

print(len(list2))???????????????# 獲取列表中數(shù)據(jù)個數(shù)

?

# 獲取列表的最后一個元素,注意要 len(list2) - 1,因為最后一個元素的索引值為8

print("list2中最后一個數(shù)據(jù)是:",list2[len(list2)-1])

?

print("***"*20)?#小竅門:直接輸出60個*

# 遍歷列表

print("遍歷列表方式一:")

for?i?in??list2:

????print(i)

????

????

print("***"*20)?#小竅門:直接輸出60個*

print("遍歷列表方式二:")

for?i?in?range(len(list2)):

????# 內(nèi)置函數(shù) type()獲取數(shù)據(jù)類型

????print("list2列表中索引值{}對應的數(shù)據(jù)是{},數(shù)據(jù)類型是:{}".format(i,list2[i],type(list2[i])))

輸出結(jié)果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

1

6

9

list2中最后一個數(shù)據(jù)是:?python

************************************************************

遍歷列表方式一:

1

2

3

4

5

6

7

False

python

************************************************************

遍歷列表方式二:

list2列表中索引值0對應的數(shù)據(jù)是1,數(shù)據(jù)類型是:<class?'int'>

list2列表中索引值1對應的數(shù)據(jù)是2,數(shù)據(jù)類型是:<class?'int'>

list2列表中索引值2對應的數(shù)據(jù)是3,數(shù)據(jù)類型是:<class?'int'>

list2列表中索引值3對應的數(shù)據(jù)是4,數(shù)據(jù)類型是:<class?'int'>

list2列表中索引值4對應的數(shù)據(jù)是5,數(shù)據(jù)類型是:<class?'int'>

list2列表中索引值5對應的數(shù)據(jù)是6,數(shù)據(jù)類型是:<class?'int'>

list2列表中索引值6對應的數(shù)據(jù)是7,數(shù)據(jù)類型是:<class?'int'>

list2列表中索引值7對應的數(shù)據(jù)是False,數(shù)據(jù)類型是:<class?'bool'>

list2列表中索引值8對應的數(shù)據(jù)是python,數(shù)據(jù)類型是:<class?'str'>

注意上面代碼中兩種循環(huán)方式的區(qū)別,第一種循環(huán)是直接根據(jù)列表list中的數(shù)據(jù)通過偏移依次遍歷,第二種是通過列表list的索引值遍歷循環(huán),類似查找操作。順便回憶一下內(nèi)置函數(shù)type()的使用。

五.列表List截取

列表List截取和字符串的操作類似,直接根據(jù)List的下標索引值操作即可,演示代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

list1?=?["猿",True,"python",5.5,"hello",20,"list","study"]

print("list1:",list1)

?

# 截取在列表中索引值為2-4的數(shù)據(jù),注意截取并不包括4

list2?=?list1[2:4]

print("list2:",list2)

?

# 截取在列表中索引值為1-5的數(shù)據(jù),注意截取并不包括5

list3?=?list1[1:5]

print("list3:",list3)

?

# 截取在列表中索引值為0-4的數(shù)據(jù),冒號前面不設置參數(shù),默認重0開始,注意截取并不包括4

list4?=?list1[:4]

print("list4:",list4)

?

# 截取在列表中索引值為2-末尾的數(shù)據(jù),冒號后面不設置參數(shù),默認截取到最后一位數(shù)據(jù),注意截取包括最后一位

list5?=?list1[2:]

print("list5:",list5)

輸出結(jié)果:

1

2

3

4

5

list1:?['猿',?True,?'python',?5.5,?'hello',?20,?'list',?'study']

list2:?['python',?5.5]

list3:?[True,?'python',?5.5,?'hello']

list4:?['猿',?True,?'python',?5.5]

list5:?['python',?5.5,?'hello',?20,?'list',?'study']

?

六.列表List排序

可以通過使用sort()函數(shù)或者reverse()函數(shù)對列表list排序,演示代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

# 對數(shù)字排序

list1?=?[10,2,30,4,5,6,7]?#定義一個空列表

print("排序之前:",list1)

list1.sort()??# 默認重小到大依次排序

print("排序之后:%s"?%?list1)

list1.reverse()?# 默認重大到小依次排序

print("排序之后:{}".format(list1))

?

print("***"*20)?# 小竅門:直接打印60個*

#對字符串排序

list2?=?["f","e","c","a"]

print("排序之前:",list2)

list2.sort()??# 默認重小到大依次排序

print("排序之后:%s"?%?list2)

list2.reverse()?# 默認重大到小依次排序

print("排序之后:{}".format(list2))

輸出結(jié)果:

1

2

3

4

5

6

7

排序之前:?[10,?2,?30,?4,?5,?6,?7]

排序之后:[2,?4,?5,?6,?7,?10,?30]

排序之后:[30,?10,?7,?6,?5,?4,?2]

************************************************************

排序之前:?['f',?'e',?'c',?'a']

排序之后:['a',?'c',?'e',?'f']

排序之后:['f',?'e',?'c',?'a']

?

七.列表List與字符串str的相互轉(zhuǎn)換

1.str 字符串轉(zhuǎn)列表 list

使用list(str),強制將str字符串轉(zhuǎn)為list列表,演示代碼如下:

1

2

3

4

str1?=?"hello world"

list1?=?list(str1)??# 強制將str1 字符串轉(zhuǎn)為列表 list

print("str1:{},數(shù)據(jù)類型:{}".format(str1,type(str1)))

print("list1:{},數(shù)據(jù)類型:{}".format(list1,type(list1)))

輸出結(jié)果:

1

2

str1hello?world,數(shù)據(jù)類型:<class?'str'>

list1['h',?'e',?'l',?'l',?'o',?' ',?'w',?'o',?'r',?'l',?'d'],數(shù)據(jù)類型:<class?'list'>

?

2.list 列表轉(zhuǎn)字符串 str

使用join()函數(shù)將列表直接轉(zhuǎn)為字符串,演示代碼如下:

1

2

3

4

list2?=?["猿說python",'-',"python教程"]

str2?=?"".join(list2)

print("list2:{},數(shù)據(jù)類型:{}".format(list2,type(list2)))

print("str2:{},數(shù)據(jù)類型:{}".format(str2,type(str2)))

輸出結(jié)果:

1

2

list2['猿說python',?'-',?'python教程'],數(shù)據(jù)類型:<class?'list'>

str2:猿說python-python教程,數(shù)據(jù)類型:<class?'str'>

?

?

八.重點總結(jié)

1.對于列表的增刪改查是python開發(fā)中經(jīng)常使用的內(nèi)容,需要全部掌握.

2.注意列表List與字符串str的寫法區(qū)別:

1

2

a?=?"hello world"????# 字符串

b?=?["hello world"]??# 列表,列表中只有一個字符串數(shù)據(jù)

?

?

猜你喜歡:

1.Pycharm配置開發(fā)模板

2.python for循環(huán)

3.python 字符串

?

轉(zhuǎn)載請注明:猿說Python???python列表

?



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI