Python 列表内置函数

文章目录

    • 1. 列表的含义
    • 2. 列表的本质
    • 3. 列表的索引
    • 4. 列表的内置函数
      • 强制转换
      • 访问列表的值
        • 索引
        • 切片
      • 修改列表的值
        • append()方法 ---末尾添加一个整体元素
        • extend()方法 ---末尾加入多个值
        • insert()方法 ---指定位置插入指定的值
      • 删除列表元素
        • pop()方法 ---弹出指定位置的值
        • remove()方法 ---删除第一个符合指定值的数据
        • clear()方法
      • 对列表的值进行排序
        • reverse()方法 ---反向排序
        • sort()方法 ---对列表内容排序
      • 寻找列表元素
        • count()方法 ---查找指定的值出现的次数
        • index()方法 ---查找第一个匹配项的索引值

1. 列表的含义

列表是python基本数据类型之一,它可以存放任意数据类型。

列表的构造为
			list_a = [1, 2, 3, 4, 5 ]
首尾用中括号包裹,元素与元素之间用逗号和空格隔开

2. 列表的本质

列表在内存中存放的结果与集合不同,列表是有序的

列表储存的是每个元素的内存地址。

列表是可变数据,当我们改变列表元素的值时,只是列表里面连接的内存地址变了
而列表名对列表的连接并没有影响,所以列表的内存地址并没有变

例如:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a)
		print(id(list_a))
		list_a[0] = 'a'
		print(list_a)
		print(id(list_a))

打印的结果:
		[1, 2, 3, 4, 5, 6, 7, 8, 9]
		2109072195264
		['a', 2, 3, 4, 5, 6, 7, 8, 9]
		2109072195264

我们可以看到,列表的地址并没有变。

Python 列表内置函数_第1张图片

3. 列表的索引

索引在列表中的表示如下图
Python 列表内置函数_第2张图片

索引从前往后是从 0 开始计数,也可以从后往前计数,从后往前是从 -1 开始。

4. 列表的内置函数

强制转换

list()方法

list()方法
强制转换成列表

支持for循环的可以被转换为列表。

访问列表的值

索引

因为列表是有序的,我们可以通过索引来取出我们想要的值。

1. 正向索引
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[6])
   得到的结果是 7 

2. 反向索引
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[-3])
   得到的值也是 7 

说明索引 6 和索引 -3 的值相同。
切片

需要取出多个值时,我们可以用切片来取值。

切片是用中括号来包裹需要取的值的索引值。中括号里第一个值为开始的位置,第
二个索引是结束的位置。第三个是步长。
1. 正向切片

示例代码:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[1:6])
此时取出的是从索引 1 开始,索引 6 结束。
		[2, 3, 4, 5, 6]

需要注意的是,到索引 6 结束,但是不包含索引 6 ,包头不包尾。
2. 反向切片

示例代码:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[-5:-1])
		
'注意点,在索引中,切片是在坐标系从左往右切'

如果是  list_a[-1:-5] 的话,输出的是一个空值。

步长
步长代表了元素与元素之间的距离间隔。默认值为 1

1. 正向切片


(1)代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[0:6:2])
输出结果:
		[1, 3, 5]

当我们改变步长为 2 的时候,我们可以看到中间的 24 被跳过了,运用这样
的办法,我们可以筛选除奇偶数

(2)代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[-5:-1:2])
输出结果:
		[5, 7]

我们从 -5 取到 -1 也算是正向切片,取得值步长为 1 时取得是 5678 ,但是
步长为 2 时,68 已经被跳过了。
2. 反向切片

我们也可以反向进行切片。

(1)代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[6:0:-1])
输出结果:
		[7, 6, 5, 4, 3, 2]

原本步长为 1 的时候,从 6 切到 5 返回的是空值,但是我们可以看到在步长
为 -1 的时候可以从 6 切到 5 而且返回的是反向的列表值。

(2)代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[6:0:-2])
输出结果:
		[7, 5, 3]

同样的切片索引值,改变步长为 -2 时,和代码示例一中不同,642 被跳过了,
我们可以得知,-1 是改变方向,-2 就可以在改变方向的基础上进行跳过。

(3)代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[-1:-5:-1])
输出结果:
		[9, 8, 7, 6]

原本[-1:-5:1]返回的值应该为空,但是改变步长为 -1 时,就相当于改变了默
认的切片取值方向,所以我们也可以推出,[-5:-1:-1]的情况下返回的值应该是
空值。

(4)代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		print(list_a[-1:-5:-2])
输出结果:
		[9, 7]

我们也应该可以推出代码示例四的情况下,元素之间的间隔。

修改列表的值

我们知道了索引之后,就可以直接用索引来改变列表的元素值。

代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_a[0] = 'a'
		print(list_a)
输出结果:
		['a', 2, 3, 4, 5, 6, 7, 8, 9]
		
append()方法 —末尾添加一个整体元素
append() 方法用于在列表末尾添加新的对象。可以为列表、元组等等。
append()方法语法:

		list.append(obj)

obj -- 添加到列表末尾的对象。

(1)代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_a.append(10)
		print(list_a)
输出结果:
		[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我们可以看到,在列表的末尾多了一个 10(2)代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_a.append(['23', 'a', 'b'])
		print(list_a)
输出结果:
		[1, 2, 3, 4, 5, 6, 7, 8, 9, ['23', 'a', 'b']]

'''
   注意点1:我们直接打印 print(list_a.append(10)) 只会输出 none 
          因为当我们对列表使用 append() 方法时,并没有产生新的对象。
   注意点2:append()方法是在末尾添加一个元素,我们若是用此方法传入多个
          元素如列表,会被当作一个元素。
'''
extend()方法 —末尾加入多个值
和 append() 方法对应,此方法用于在列表末尾一次性追加另一个序列中的多个
值,这个值可以为数字、字符、列表、元组、集合、字典。

extend()方法语法:

		list.extend(seq)
		
代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_a.extend(['23', 'a', 'b'])
		print(list_a)
输出结果:
		[1, 2, 3, 4, 5, 6, 7, 8, 9, '23', 'a', 'b']


同样的代码,不同的方法,append()会把列表当作一个元素加入。而 extend()
会把数据集里面的元素加到里面,而不是以一个整体加入。


'''
注意点,要是把列表合并,也就是列表加上列表,我们还可以用相加的方法,但是
该方法不推荐,代码如下:

		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_b = [11, 12, 13]
		list_a += list_b
		print(list_a)

'''

insert()方法 —指定位置插入指定的值
insert() 函数用于将指定对象插入列表的指定位置。
insert()方法语法:

		list.insert(index, obj)
		
index -- 对象obj需要插入的索引位置。
obj -- 要插入列表中的对象。可以为列表、元组等等


代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_a.insert(2,'XWenXiang')
		print(list_a)
输出结果:
		[1, 2, 'XWenXiang', 3, 4, 5, 6, 7, 8, 9]

上面的代码也就是在索引为 2 的元素前面插入一个指定的值。

删除列表元素

Python 列表内置函数_第3张图片

pop()方法 —弹出指定位置的值
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素
的值
pop()方法语法:

		list.pop([index=-1])

index -- 可选参数,要移除列表元素的索引值,不能超过列表总长度

代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		x = list_a.pop(2)
		print(x)
输出结果:
		3


pop() 方法可以理解为弹出一个值,这个值还能继续被利用,而不是直接消失。
我们可以通过一个变量储存弹出的值。
remove()方法 —删除第一个符合指定值的数据
remove() 函数用于移除列表中某个值的'第一个'匹配项。
remove()方法语法:

		list.remove(obj)

obj -- 列表中要移除的对象。

代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_a.remove(2)
		print(list_a)
输出结果:
		[1, 3, 4, 5, 6, 7, 8, 9]


我们可以看到,2 被删除了,此方法的作用就是查找列表的所有元素,找到符合
指定的元素并删除,此删除的元素不像 pop() 一样可以利用。

'注意点,此方法是从左往右进行查找,不能从右往左。'
clear()方法
clear() 函数用于清空列表,类似于 del a[:]。
clear()方法语法:

		list.clear()

代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_a.clear()
		print(list_a)
输出结果:
		[]
		

对列表的值进行排序

reverse()方法 —反向排序
reverse() 函数用于反向列表中元素
reverse()方法语法:

		list.reverse()

代码示例:
		list_a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
		list_a.reverse()
		print(list_a)
输出结果:
		[9, 8, 7, 6, 5, 4, 3, 2, 1]

'''
注意点此方法和切片操作中的 list_a[::-1] 相似, list_a[::-1] 也可以反
转排列顺序。
'''
sort()方法 —对列表内容排序
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较
函数。
sort()方法语法:

		list.sort(reverse=False)

reverse -- 排序规则,reverse = True 降序, reverse = False 升序
(默认)

代码示例:
		list_a = [1, 3, 2, 7, 5, 9, 6, 9, 0]
		list_a.sort()
		print(list_a)
输出结果:
		[0, 1, 2, 3, 5, 6, 7, 9, 9]

若将 reverse = True ,则为降序。

寻找列表元素

count()方法 —查找指定的值出现的次数
count() 方法用于统计某个元素在列表中出现的次数。
count()方法语法:

		list.count(obj)

代码示例:
		list_a = [1, 3, 2, 7, 2, 9, 2, 9, 0]
		print(list_a.count(2))
输出结果:
		3

index()方法 —查找第一个匹配项的索引值
index() 函数用于从列表中找出某个值第一个匹配项的'索引'位置。
index()方法语法:

		list.index(x[, start[, end]])

x-- 查找的对象。
start-- 可选,查找的起始位置。
end-- 可选,查找的结束位置。

代码示例:
		list_a = [1, 3, 2, 7, 2, 9, 2, 9, 0]
		print(list_a.index(2))
输出结果:
		2

你可能感兴趣的:(python,python,开发语言)