Python 列表操作

python

列表list

一个队里,一个排列整齐的队伍

列表内的个体称作元素,由若干元素组成列表

元素可以是任意对象(数字,字符串,对象,列表等)

列表内元素有顺序,可以使用索引

线性的数据结构

使用 [] 表示

列表是可变的

列表 list 定义,初始化

list()  # 定义一个空列表

list(iterable)  # 从一个可迭代的对象初始化列表

列表不能一开始就定义大小 

列表的查

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

print(a[1:4])
结果:
['tom', 'jack', 'james']

注意:列表的切片的下标以 0 为开始。即: 下标0 --> klvchen,下标1 --> tom,..... 下标5 --> lucy。

          列表的切换顾头不顾尾,例如:a [1:4],则不会取到列表下标为4的元素

从左到右,取到最后:

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

print(a[1:])

结果:
['tom', 'jack', 'james', 'lily', 'lucy']

从左到右,取到倒数第二个值:

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

print(a[1:-1])
结果:
['tom', 'jack', 'james', 'lily']

从左到右,隔一个去取:

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

print(a[1::2])
结果:
['tom', 'james', 'lucy']

从右到左,一个一个去取:

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

print(a[3::-1])
结果:
['james', 'jack', 'tom', 'klvchen']

从右到左去取

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

print(a[-2:-4:-1])
结果:
['lily', 'james']

迭代

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

for k,v in enumerate(a):

print(k, v)

结果:

0 klvchen

1 tom

2 jack

3 james

4 lily

5 lucy

列表的增

append 方法默认插到最后一个位置

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

a.append("mary")

print(a)

结果:

['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy', 'mary']

insert 方法将数据插入到任意一个位置

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

a.insert(1,"mary")

print(a)

结果:

['klvchen', 'mary', 'tom', 'jack', 'james', 'lily', 'lucy']

extend 方法可在列表的末尾一次性追加另一个序列中的多个值

a = ["klvchen", "tom", "jack"]

b = ["james", "lily", "lucy"]

a.extend(b)

print(a)
结果:
['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']

*,重复操作,将本列表表示元素重复 n 次,返回新的列表

list1 = [1, 2, 3]

list2 = list1 * 2

print(list2)
结果:
[1, 2, 3, 1, 2, 3]

+,连接操作,将两个列表连接起来,产生新的列表,原列表不变

list3 = [4, 5, 6]

list4 = list1 + list3

print(list4)

结果:

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

列表的改

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

a[1]="tom2"

print(a)

结果:

['klvchen', 'tom2', 'jack', 'james', 'lily', 'lucy']

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

a[1:3]=["tom2", "jack2"]

print(a)

结果:

['klvchen', 'tom2', 'jack2', 'james', 'lily', 'lucy']

列表的删

remove 方法

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

a.remove("tom")

print(a)

结果:

['klvchen', 'jack', 'james', 'lily', 'lucy']

pop 方法

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

b = a.pop(1)

print(a)

print(b)

结果:

['klvchen', 'jack', 'james', 'lily', 'lucy']

tom

注意 pop 方法会返回删除的元素

 

del 方法

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

del a[1]

print(a)

结果:

['klvchen', 'jack', 'james', 'lily', 'lucy']

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

del a

print(a)

结果:

NameError: name 'a' is not defined

注意:del a 把列表a从内存删除了,所以打印 a 列表程序会报错

clear()

清除列表所有元素,剩下一个空列表 

列表元素的统计

list = ['a', 'a', 'b', 'c']

res = list.count('a')

print(res)

结果:

2

列表复制

 copy() 

shadow copy 影子拷贝,也叫浅拷贝,遇到引用类型,只是复制了一个引用而已,返回一个新的列表

lst0 = list(range(4))

lst1 = lst0.copy()

print(lst0 == lst1) # 判断 lst0 的元素和 lst1 的元素是否一样

print(lst1 is lst0) # 判断 lst0, lst1 的内存地址是否一样

结果:

True
False

 深拷贝

copy 模块提供了 deepcopy

import copy

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

lst5 = copy.deepcopy(lst0)

lst5[1][1] = 20

print(lst5 == lst0)


False

列表的排序

sort 方法

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

print(a)

a.sort()

print(a)

结果:

['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']

['jack', 'james', 'klvchen', 'lily', 'lucy', 'tom']

reverse 方法

a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]

print(a)

a.reverse()

print(a)

结果:

['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']

['lucy', 'lily', 'james', 'jack', 'tom', 'klvchen']

以上是 Python 列表操作 的全部内容, 来源链接: utcz.com/z/389229.html

回到顶部