上篇:https://blog.csdn.net/qq_42489308/article/details/89388005

切片--也叫截取

切片指的是对序列进行截取,选取序列中的某一段。

切片的语法是: list[start:end]

以冒号分割索引,start代表起点索引,end代表结束点索引。省略start表示以0开始,省略end表示到列表的结尾。注意,区间是左闭右开的!

python学习笔记——列表(下)

如果提供的是负整数下标,则从列表的最后开始往头部查找。例如-1表示最后一个元素,-3表示倒数第三个元素。

切片过程中还可以设置步长,以第二个冒号分割,例如list[3:9:2],表示每隔多少距离取一个元素。

a = [1,2,3,4,5,6,7,8]
a[2:4]      [3,4]
a[:7]       [1,2,3,4,5,6,7]
a[2:]       [3,4,5,6,7,8]
s = a[:]    复制列表
s
[1,2,3,4,5,6,7,8]
s.remove(2) 删除2元素 并不是根据下标进行删除的
s = [1,3,4,5,6,7,8] 

a[-1]       8
a[-5:]      [4,5,6,7,8]
a[::-1]     想当于逆序输出 [8, 7, 6, 5, 4, 3, 2, 1]
a[1:5:2]    [2,4]

多维列表(嵌套列表)

a = [[1,2,3],[4,5,6],[7,8,9]]
a[0][1]
2
a = [[1,2,3],[4,5,6],{"k1":"v1"}]
a[2]["k1"]
v1

列表的遍历

列表有好几种遍历方式:

a = [1,2,3,4,5,6]
for i in a:             # 遍历每一个元素本身
    print(i)
for i in range(len(a)):     # 遍历列表的下标,通过下标取值
    print(i, a[i])
x = 9
if x in a:      # 进行是否属于列表成员的判断。该运算速度非常快。
    print("True")
else:
    print("False")

列表的内置方法

方法              作用
append(obj)     在列表末尾添加新的对象
count(obj)      统计某个元素在列表中出现的次数
extend(seq)     在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
index(obj)      从列表中找出某个值第一个匹配项的索引位置
insert(index, obj)  将对象插入列表
pop(obj=list[-1])   移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
remove(obj)      移除列表中某个值的第一个匹配项
reverse()       反向列表中元素
sort([func])     对原列表进行排序
copy()          复制列表
clear()         清空列表,等于del lis[:]

注意:其中的类似 append,insert, remove 等方法会修改列表本身,并且没有返回值

练习

test = ["a", "b", "c", "d"]
test.append("A")
test
["a", "b", "c", "d","A"]

lis.append(['a'])
['a', 'b', 'c', ['a']]

-----------------------------------------
test.count()    并不是求列表元素个数,而是求其中一个元素出现的次数
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    lis.count()
TypeError: count() takes exactly one argument (0 given)
test.count("a")
1
lis = ['a', 'b', 'c', ['a'], ['a', 'b']]
lis.count('a')      # 会出现几次?
1
lis.count(['a'])
1

-----------------------------------------

test.extend(["e","f"])
test
["a", "b", "c", "d","A","e","f"]

append(object) 是将一个对象作为一个整体添加到列表中,添加后的列表比原列表多一个元素,该函数的参数可以是任何类型的对象,
该函数没有返回值     

extend(iterable) 是将一个可迭代对象中的每个元素逐个地添加到列表中,可迭代对象中有几个元素,添加后的列表就比原列表多几个元素,
该函数的参数必须是可迭代的对 象,改函数没有返回值

-----------------------------------------
test
["a", "b", "c", "d","A"]

test.index("a")
0
test.index("A")
4
-----------------------------------------

test.insert(3,"C")
["a", "b", "c", "C","d","A","e","f"]

-----------------------------------------

test.pop()
test
["a", "b", "c", "C","d","A","e"]
test.pop(4)             # 根据位置弹出
d

-----------------------------------------

test.remove(3)   删除不是根据下标进行删除的,删除是根据键值来删除的
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    lis.remove(3)
ValueError: test.remove(x): x not in list
test.remove("e")

-----------------------------------------

test
["a", "b", "c", "C",A","f"]
test.reverse()      逆序输出
['f', 'A', 'C', 'c', 'b', 'a']
newlist = test.copy()
newlist
['f', 'A', 'C', 'c', 'b', 'a']
newlist.clear()     清空列表
newlist
[]
test.sort()
['A', 'C', 'a', 'b', 'c', 'f']    按照ASCII字符表中数字排序的

注意:其中的类似 append,insert, remove 等方法会修改列表本身,并且没有返回值(严格的说是返回None)。

 

相关文章: