1.利用负数作为索引项
python里面的字典可以用负数作为其索引项,且-1表示最后一个元素
例如:
index = [1,2,3]
print(index[-2])
#输出结果为:2
2.列表的几个操作
①‘+’操作符——用于连接两个列表,生成一个新的列表
例如:
x = [1,2,3]
y = [4,5,6]
z = x + y
print(z)
#输出结果为:
[1,2,3,4,5,6]
②'*'操作符——将一个列表按给定的次数复制、生成一个新的列表
例如:
list_n = [1] * 4
print(list_n)
#输出结果为:
[1,1,1,1]
3.列表数据类型的方法——列表的方法都没有返回值
像max,min,len,list等python内置的函数,它们是有返回值的,而对于可变数据类型列表的方法,是没有返回值的,它们直接修改列表
①extend方法
extend可以向列表的末尾添加可迭代的数据,元祖,列表,集合字符串等都能添加
例如:
list_n = [1] * 4
list_n.extend('123')
print(list_n)
#输出结果为:
[1, 1, 1, 1, '1', '2', '3']
②内置函数sum,不是方法
t = [1,2,3]
a = sum(t)
print(a)
#输出结果为:
#6
4.删除列表元素
方法一 —— pop
修改列表并返回被移除的元素,如果不提供索引的参数,即括号里面是空的,则删除和返回最后一个元素
例如:
a = [1,2,3,4,5,6,7,8,9]
pop_1 = a.pop()
pop_2 = a.pop(2)
print(pop_1,pop_2)
#输出结果为:
#9,3
方法二 —— del
不返回被移除的值
a = [1,2,3,4,5,6,7,8,9]
del a[8]
del a[2]
print(a)
#输出结果为:
#[1,2,4,5,6,7,8]
方法三 —— remove
remove不返回任何值,且传入的参数是欲删除元素的值
例如:
a = [1,2,3,4,5,6,7,8,9]
a.remove(9)
a.remove(3)
print(a)
#输出结果为:
#[1,2,4,5,6,7,8]
另外使用del可以删除多个元素
例如:
a = list(range(1,10))
del a[3:7]
print(a)
#输出结果为:
#[1,2,3,8,9]
5.列表和字符串之间的互相转换
字符串是一个字符序列,列表是一个值的序列,但是字符列表不同于字符串,
split()、join()、list()实现将列表和字符串之间相互转换,例如:
string_1 = 'This is a test string'
list_1 = string_1.split()
print(list_1)
#输出结果为:['This','is','a','test','string']
string_2 = ','.join(list_1)
print(string_2)
#输出结果为:'This,is,a,test,string'
word = 'python'
list_2 = list(word)
print(list_2)
#输出结果为:['p','y','t','h','o','n']
6.对象,别名,引用
当两个变量指向同一个对象时,可以用is来判断,
当两个变量值相同时,可以用'=='或'<>'来判断
例如:
a = 'python'
b = 'python'
print(b is a,b == a)
#输出结果为True,True,
#当两个变量指向同一个对象时,它们的值肯定相等
c = [1,2,3]
d = c
e = [1,2,3]
print(c is d , c == d)
print(e is c , c == e)
#输出结果为:True,True
#False,True
当两个变量指向同一个可变对象时,其中一个变量值的改变也会引起另一个值的改变
例如:
①直接将一个变量赋给另一个可变变量
a = [1,2,3]
b = a
b[0] = 4
print(a,b)
#输出结果为:[4,2,3],[4,2,3]
②由实参传递给函数的形参时:
def reference(b):
b[0] = 9
a = [1,2,3]
reference(a)
print(a)
#输出结果为:[9,2,3]
总结:我们可以将上面的b叫做a的别名,它们指向一个对象,如果其中一个改变,必定会引起另一个的改变
这种情况容易引起意想不到的错误,如何避免嗯??
有以下几种方法:
①list方法
a = [1,2,3]
b = list(a)
print (b is a,b == a)
#输出结果为:(False,True)
②分片方法
a = [1,2,3]
b = a[:]
print(b is a ,b == a)
#输出结果为:(False,True)
③copy库的copy方法
import copy
a = [1,2,3]
b = copy.copy(a)
print(b is a ,b == a)
#输出结果为:False,True
c = [1,2,[1,2]]
d = copy.copy(c)
print(c[2] is d[2])
#输出结果为True
e = copy.deepcopy(c)
print(c[2] is e[2])
#输出结果为:False
f = [1,2,[1,2,[1,2]]]
g = copy.deepcopy(f)
print(g[2][2] is f[2][2])
#输出结果为:False
当列表里面嵌套着列表时,需要用deepcopy