詳細總結:Python列表list知識點

WBOY
發布: 2022-11-23 20:42:14
轉載
7324 人瀏覽過

本篇文章為大家帶來了關於Python的相關知識,其中主要介紹了一些關於列表的知識,包括創建列表、訪問列表元素以及對列表內置函數和方法進行了一些整理,最後還有關於清單的知識總結,下面一起來看一下,希望對大家有幫助。

詳細總結:Python列表list知識點

【相關推薦:Python3影片教學

Python內建函數/方法詳解—清單list

清單是一個有序可變更的集合,並且是最常用的Python 資料類型。在 Python 中,列表是使用方括號 [] 編寫的。

1、創建列表

在Python中,列表中元素的資料類型可以不同,可以包含整數、浮點數和複數等,當然,也可以包含列表、元組、字典和集合等。

1.1 使用[ ] 建立列表

建立一個列表,只需要把逗號分隔的不同資料項使用方括號[] 括起來即可。

  • 建立空白清單
list0 = []
登入後複製
  • #建立非空白清單
list1 = ['Baidu', 'Alibaba', 'Tencent']
登入後複製

1.2 使用list() 函式建立(轉換為)清單

  • 可以使用list() 建構子建立清單:
this_list = list(('apple', 'banana', 'cherry'))
登入後複製

#注意:在使用list() 函數建立清單時,一定要注意雙括號

  • 在Python中,我們可以使用 list() 函數將字串、元組、字典和集合等其他類似物件轉換為列表。 具體用法請見下方內建函數:

2、存取清單

和清單一樣,我們既可以使用下標索引存取清單中的某個元素(得到一個元素的值),也可以使用切片來存取清單中的一組元素(得到是子清單)。

2.1 下標索引存取

下標索引存取元組分為兩大類,即正向索引反向索引,格式為list_name[i] ,其中,list_name 表示清單名,i表示索引值,i可以是正數(正向索引)也可以是負數(反向索引)。

可以得知,list_name[0]表示清單的第一個元素list_name[-1]則表示清單的最後一個元素

list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']print(list_name[0])print(list_name[-1])
登入後複製
wzq
hxw
登入後複製

正向索引:從第一個(下標0)開始、第二個(下標1)…

#反向索引:從倒數第一個(下標-1)、倒數第二個(下標-2)…

#2.2 切片訪問

如若對上方描述不太理解,可參考下表:

元組值 wzq lgl gz whl sj hxw
#正向索引 1 2 3 4 5
反向索引 -6 -5 -4 -3 -2 -1

使用切片访问列表的格式为 list_name[strat : end : step] ,其中,start 表示起始索引,end 表示结束索引,step 表示步长。

list_name = ['wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw']print(list_name[1:5:2])print(list_name[-6:-1:3])
登入後複製
['lgl', 'whl']['wzq', 'whl']
登入後複製

在使用切片访问列表元素时,list_name[strat : end : step],[start:end] 是左闭右开区间,即访问不了 end 代表的元素。

2.3 for 循环遍历列表

可以使用 for 循环遍历列表中的项目:

fruit_list = ['apple', 'pear', 'cherry']for i in fruit_list:
    print(i)
登入後複製
apple
pear
cherry
登入後複製

2.4 检查项目是否存在

要确定列表中是否存在指定的项,我们可以使用 in 关键字:

# 检查列表中是否存在'apple'fruit_list = ['apple', 'pear', 'cherry']print('apple' in fruit_list)
登入後複製
True
登入後複製

使用 in 关键字检查列表中是否存在指定项时,如果存在,则返回 True ;反之,则返回 False

2.5 更改列表值

当我们创建列表后,我们可以对列表中的数据项进行修改或更新,当然我们也可以使用 append() 方法来添加列表项。

fruit_list = ['apple', 'pear', 'cherry']fruit_list[2] = 'banana'print(fruit_list)
登入後複製
['apple', 'pear', 'banana']
登入後複製

注意:元组一旦创建后,其值将无法被更改,但是有其他解决方法。

2.6 列表连接(合并)/复制

与字符串一样,列表之间可以使用 + 号和 * 号实现元组的连接复制,这就意味着它们可以生成一个新的列表。

1、+连接(合并)

x = [1, 2, 3]y = [4, 5, 6]print(x + y)
登入後複製
[1, 2, 3, 4, 5, 6]
登入後複製

2、*复制

x = ['Hello']print(x * 5)
登入後複製
['Hello', 'Hello', 'Hello', 'Hello', 'Hello']
登入後複製

2.7 嵌套列表

使用嵌套列表即在列表里面创建其他列表。

x = [1, 2, 3]y = ['a', 'b', 'c']z = [x, y]print(z)
登入後複製
[[1, 2, 3], ['a', 'b', 'c']]
登入後複製

2.8 列表比较

列表比较需要引入 operator 模块的 eq 方法。

# 导入 operator 模块import operator

a = [1, 2]b = [2, 3]c = [2, 3]print("operator.eq(a, b):", operator.eq(a, b))print("operator.eq(b, c):", operator.eq(b, c))
登入後複製
operator.eq(a, b): Falseoperator.eq(b, c): True
登入後複製

3、内置函数

3.1 打印输出 print()

1、print()函数

print() 函数的功能我们已经非常熟悉了,就是打印输出。

my_list = ['pink', True, 1.78, 65]print(my_list)
登入後複製
['pink', True, 1.78, 65]
登入後複製

3.2 确定列表项目 len()

2、len()函数

当我们要确定一个列表有多少项目(元素)时,可以使用len()函数。

fruit_list = ['apple', 'banana', 'cherry']print(len(fruit_list))
登入後複製

3.3 返回变量类型 type()

3、type()函数

使用 type() 函数可以确定变量是什么类型(字符串、列表、元组、字典或集合)。

info_list = ['name', 'gender', 'age', 'height', 'weight']print(type(info_list))
登入後複製
<class 'list'>
登入後複製

当对info_list使用 type() 确定变量类型时,会返回<class 'list'>,表明这是一个列表

3.4 转换为列表 list()

4、tuple()函数

tuple() 函数的功能是,将其他类型转换为元组类型,详细用法如下:

  • 将字符串转换为列表
str1 = 'Hello Python'print(list(str1))
登入後複製
['H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n']
登入後複製
  • 将元组转换为列表
tuple1 = ('Hello', 'Python')print(list(tuple1))
登入後複製
['Hello', 'Python']
登入後複製
  • 将字典转换为列表
dict1 = {'Hello': 'Python', 'name': 'pink'}print(list(dict1))
登入後複製
['Hello', 'name']
登入後複製
  • 将集合转换为列表
set1 = {'Hello', 'Python', 'name', 'pink'}print(list(set1))
登入後複製
['Python', 'name', 'pink', 'Hello']
登入後複製
  • 将区间转换为列表
range1 = range(1, 6)print(list(range1))
登入後複製
[1, 2, 3, 4, 5]
登入後複製

3.5 元组元素最大/小值 max()、min()

5、max()函数和min()函数

max() 函数的作用是返回列表中元素最大值min() 函数的作用是返回列表中元素最小值

list1 = [4, 6, 2, 0, -5]print(max(list1))print(min(list1))list2 = ['a', 'z', 'A', 'Z']print(max(list2))print(min(list2))
登入後複製
6-5z
A
登入後複製

3.6 删除列表 del

  • 删除单个元素

我们可以使用 del list_name[i] 来删除某个指定元素,其中 list_name 表示列表名,i 表示指定值的索引值。

list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']del list_de[1]print(list_de)
登入後複製
['Baidu', 'Tencent', 'Bytedance']
登入後複製
  • 删除列表

del 函数不仅可以实现删除某个元素,还可以删除整个列表。

list_de = ['Baidu', 'Alibaba', 'Tencent', 'Bytedance']del list_de
登入後複製

当我们使用 del 函数删除某列表后,再使用 print() 函数打印输出时,会报错NameError: name 'list_de' is not defined,表明该列表未被定义。

4、内置方法

4.1 添加元素 append()、insert()、extend()

1、append()方法

append() 方法用于在列表末尾添加新的对象。

语法

list.append(element)
登入後複製

参数值

参数 描述
element 必需。任何类型(字符串、数字、对象等)的元素。

实例

  • 添加元素
fruit_list = ['apple', 'banana', 'cherry']fruit_list.append('pear')print(fruit_list)
登入後複製
['apple', 'banana', 'cherry', 'pear']
登入後複製
  • 添加列表
x = [1, 2, 3]y = ['A', 'B', 'C']x.append(y)print(x)
登入後複製
[1, 2, 3, ['A', 'B', 'C']]
登入後複製

2、insert()方法

insert() 方法用于将指定对象插入列表的指定位置。

语法

list.insert(position, element)
登入後複製

参数值

参数 描述
position 必需。数字,指定在哪个位置插入值。
element 必需。元素,任何类型(字符串、数字、对象等)。

实例

  • 把值 “orange” 作为第二个元素插入 fruits 列表:
fruits = ['apple', 'banana', 'cherry']fruits.insert(1, "orange")print(fruits)
登入後複製
['apple', 'orange', 'banana', 'cherry']
登入後複製
  • 将列表 y 插入到列表 x 中
x = [1, 2, 3]y = ['a', 'c']x.insert(0, y)print(x)
登入後複製
[['a', 'c'], 1, 2, 3]
登入後複製

append() 只能在末尾处添加元素或列表,insert() 可以在任意位置添加元素或列表。

3、extend()方法

extend() 方法用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

语法

list.extend(iterable)
登入後複製

参数值

参数 描述
iterable 必需。任何可迭代对象(列表、集合、元组等)。

实例

aver = ['A', 'B', 'C']
登入後複製
  • 添加字符串元素到列表末尾
str1 = 'Hello'aver.extend(str1)print(aver)
登入後複製
['A', 'B', 'C', 'H', 'e', 'l', 'l', 'o']
登入後複製
  • 添加列表元素到列表末尾
list1 = [1, 2, 3]aver.extend(list1)print(aver)
登入後複製
['A', 'B', 'C', 1, 2, 3]
登入後複製
登入後複製
登入後複製
  • 添加元组元素到列表末尾
tuple1 = (1, 2, 3)aver.extend(tuple1)print(aver)
登入後複製
['A', 'B', 'C', 1, 2, 3]
登入後複製
登入後複製
登入後複製
  • 添加字典元素到列表末尾
dict1 = {'name': 'pink', 'gender': True}aver.extend(dict1)print(aver)
登入後複製
['A', 'B', 'C', 'name', 'gender']
登入後複製
  • 添加集合元素到列表末尾
set1 = {1, 2, 3}aver.extend(set1)print(aver)
登入後複製
['A', 'B', 'C', 1, 2, 3]
登入後複製
登入後複製
登入後複製
  • 添加区间到列表末尾
range1 = range(1,10)aver.extend(range1)print(aver)
登入後複製
['A', 'B', 'C', 1, 2, 3, 4, 5, 6, 7, 8, 9]
登入後複製

4.2 元素出现次数 count()

count() 方法用于统计某个元素在列表中出现的次数。

语法

list.count(value)
登入後複製

参数值

参数 描述
value 必需。任何类型(字符串、数字、列表、元组等)。要搜索的值。

实例

num = [1, 4, 2, 9, 7, 8, 9, 3, 1]print(num.count(9))
登入後複製
2
登入後複製

4.3 指定值索引 index()

index() 方法用于从列表中找出某个值第一个匹配项的索引位置。

语法

list.index(element)
登入後複製

参数值

参数 描述
element 必需。任何类型(字符串、数字、列表等)。要搜索的值。

实例

num = [4, 55, 64, 32, 16, 32]print(num.index(32))
登入後複製
3
登入後複製

当被搜索值在列表中多次出现时,仅返回首次出现的位置。

4.4 对列表排序 sort()

sort() 方法用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

语法

list.sort(reverse=True|False, key=myFunc)
登入後複製

参数值

参数 描述
reverse 可选。reverse=True 将对列表进行降序排序。默认是 reverse=False。
key 可选。指定排序标准的函数。

实例

  • 以字母顺序对列表进行排序:
words = ['Name', 'Gender', 'Age', 'Height', 'Weight']words.sort()print(words)
登入後複製
['Age', 'Gender', 'Height', 'Name', 'Weight']
登入後複製
  • 对列表进行降序排序:
words = ['Name', 'Gender', 'Age', 'Height', 'Weight']words.sort(reverse=True)print(words)
登入後複製
['Weight', 'Name', 'Height', 'Gender', 'Age']
登入後複製
  • 按照值的长度对列表进行排序:
# 返回值的长度的函数:def myfunc(e):
    return len(e)words = ['a', 'bb', 'ccc', 'dddd', '']words.sort(key=myfunc)print(words)
登入後複製
['', 'a', 'bb', 'ccc', 'dddd']
登入後複製
  • 根据字典的 “year” 值对字典列表进行排序:
# 返回 'year' 值的函数:def myfunc(e):
    return e['year']words = [
    {'char': 'a', 'year': 1963},
    {'char': 'b', 'year': 2010},
    {'char': 'c', 'year': 2019}]words.sort(key=myfunc)print(words)
登入後複製
[{'char': 'a', 'year': 1963}, {'char': 'b', 'year': 2010}, {'char': 'c', 'year': 2019}]
登入後複製
  • 按照值的长度对列表进行降序排序:
# 返回值的长度的函数:def myfunc(e):
    return len(e)words = ['aa', 'b', 'ccc', 'dddd']words.sort(reverse=True, key=myfunc)print(words)
登入後複製
['dddd', 'ccc', 'aa', 'b']
登入後複製
  • 指定列表中的元素排序来输出列表:
# 获取列表的第二个元素def takeSecond(elem):
    return elem[1]# 列表random = [(2, 2), (3, 4), (4, 1), (1, 3)]# 指定第二个元素排序random.sort(key=takeSecond)# 输出类别print('排序列表:', random)
登入後複製
排序列表: [(4, 1), (2, 2), (1, 3), (3, 4)]
登入後複製

4.5 复制列表 copy()

copy() 方法用于复制列表,类似于 a[:]

语法

list.copy()
登入後複製

参数值

无参数

实例

fruits = ['apple', 'banana', 'cherry', 'orange']x = fruits.copy()print(x)
登入後複製
['apple', 'banana', 'cherry', 'orange']
登入後複製

复制(制作副本)的另一种方法是使用内置函数 list() ,如下:

list1 = ['apple', 'banana', 'cherry']list_2 = list(list1)
登入後複製

4.6 颠倒列表顺序 reverse()

reverse() 方法用于反向列表中元素。

语法

list.reverse()
登入後複製

参数值

无参数

实例

fruits = ['apple', 'banana', 'cherry']fruits.reverse()print(fruits)
登入後複製
['cherry', 'banana', 'apple']
登入後複製

4.7 删除元素 pop()、remove()、clear()

1、pop()方法

pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

语法

list.pop(pos)
登入後複製

参数值

参数 描述
pos 可选。数字,指定需删除元素的位置。默认值 -1,返回最后的项目。

实例

  • pos 未指定时,默认删除最后的元素
fruits = ['apple', 'banana', 'cherry']fruits.pop()print(fruits)
登入後複製
['apple', 'banana']
登入後複製
  • pos 指定要删除元素的位置
fruits = ['apple', 'banana', 'cherry']fruits.pop(1)print(fruits)
登入後複製
['apple', 'cherry']
登入後複製

2、remove()方法

remove() 方法用于移除列表中某个值的第一个匹配项。

语法

list.remove(element)
登入後複製

参数值

参数 描述
element 必需。需删除的任何类型(字符串、数字、列表等)的元素。

实例

num = [1, 3, 2, 8, 3]num.remove(3)print(num)
登入後複製
[1, 2, 8, 3]
登入後複製

当被删除的元素在列表中存在多个时,默认删除首次出现的那个。

3、clear()方法

clear() 方法用于清空列表,类似于 del a[:]

语法

list.clear()
登入後複製

参数值

无参数

实例

word = ['A', 'B', 'C']word.clear()print(word)
登入後複製
[]
登入後複製

clear() 方法的作用是清空列表,执行结束后对其使用 printf() 打印输出时,会输出 [] ,说明列表还存在,只是空列表而已。

del 函数的作用是删除列表,执行结束后对其使用 printf() 打印输出时,会报错 NameError: name 'word' is not defined.

5、总结

函数 描述
print() 打印输出
len() 确定列表项目
type() 返回变量类型
list() 转换为列表
max() 返回列表元素最大值
min() 返回列表元素最小值
del 删除列表
方法 描述
append(obj) 在列表末尾添加新的对象
insert(index, obj) 在指定位置添加元素
extend(seq) 将列表元素(或任何可迭代的元素)添加到当前列表的末尾
count(obj) 统计某个元素在列表中出现的次数
index(obj) 返回具有指定值的第一个元素的索引
sort( key=None, reverse=False) 对原列表进行排序
copy() 复制列表
reverse() 颠倒列表的顺序
pop([-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
remove(obj) 移除列表中某个值的第一个匹配项
clear() 清空列表

【相关推荐:Python3视频教程

以上是詳細總結:Python列表list知識點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板