-
append(el) 在列表的末尾增加一个元素
ls = [1, 2, 3] ls.append(4) print(ls)
[1, 2, 3, 4]
ls.append([1, 2]) #添加的元素为列表等,视为一个元素 print(ls)
[1, 2, 3, 4, [1, 2]]
-
insert(index, el) 在列表的指定索引的前面添加一个元素
ls = [1, 2, 3] ls.insert(2, 'a') #第一个参数为指定位置的索引,第二个参数为需插入的元素 print(ls)
[1, 2, 'a', 3]
-
extend(iterable) 扩展列表,元素为可迭代对象中的元素
ls = [1, 2, 3] ls.extend([4, 5, 6]) print(ls)
[1, 2, 3, 4, 5, 6]
ls = [1, 2, 3] ls.extend(4) #如果扩展的元素为不可迭代对象,会报错 print(ls)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) ~AppDataLocalTemp/ipykernel_17584/634050513.py in1 ls = [1, 2, 3] ----> 2 ls.extend(4) #如果扩展的元素为不可迭代对象,会报错 3 print(ls) TypeError: 'int' object is not iterable
2.4.3 删除元素
-
pop(index = -1) 删除指定索引的元素,并返回该元素,没有指定索引默认删除最后一个元素
ls = [1, 2, 3] ls.pop() #没有指定索引,默认删除最后一个元素,并且pop方法直接返回删除的元素
3
print(ls)
[1, 2]
ls = [1, 2, 3] ls.pop(0) print(ls) #删除指定索引的元素
[2, 3]
-
remove(value) 从列表中删除第一个指定的值value,如不存在value则报错
ls = [1, 2, 3, 4] ls.remove(1) print(ls)
[2, 3, 4]
ls.remove('a') #value不存在则报错
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) ~AppDataLocalTemp/ipykernel_17584/475934945.py in----> 1 ls.remove('a') ValueError: list.remove(x): x not in list
clear() 清空列表,远列表变成空列表
ls = [1, 2, 3] ls.clear() print(ls)[]
2.5 列表的其他方法
-
count(value) 统计列表中value出现的次数
ls = [1, 2, 3, 1] ls.count(1)
2
ls.count(4)
0
-
index(self, value, start=0, stop=9223372036854775807) 返回列表中指定值value的第一个索引,不存在则报错,start表示开始搜素的索引位置,默认为0
ls = [1, 2, 3, 1] ls.index(2)
1
ls.index(1, 1) #第一个参数表示需要搜素的value为1,第二个参数表示从索引为1开始向后搜素
3
ls.index(4) #搜素的value不存在报错
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) ~AppDataLocalTemp/ipykernel_17584/2713790472.py in----> 1 ls.index(4) ValueError: 4 is not in list
-
reverse() 翻转列表元素
ls = [1, 2, 3] ls.reverse() print(ls)
[3, 2, 1]
-
sort(key=None, reverse=False) 对列表进行排序,默认按照从小到大的顺序,当参数 reverse=True 时,从大到小。注意列表中的元素类型需要相同,否则抛出异常。
ls = [2, 1, 4, 3] ls.sort() #不传入reverse时,默认从小到大 print(ls)
[1, 2, 3, 4]
ls.sort(reverse = True) print(ls) #传入reverse = True时,从大到小排列
[4, 3, 2, 1]
ls = [1, 2, '3'] ls.sort() #当列表内元素不为同类型时,会报错 print(ls)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) ~AppDataLocalTemp/ipykernel_17584/3701372791.py in1 ls = [1, 2, '3'] ----> 2 ls.sort() 3 print(ls) TypeError: '<' not supported between instances of 'str' and 'int'
ls = ['c', 'a', 'b'] ls.sort() print(ls)
['a', 'b', 'c']
2.6 字符串和列表的转换
字符串是字符组成的序列,可以通过 list 函数将字符串转换成单个字符的列表
str = 'hello world!' ls = list(str) print(ls)
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
由字符组成的列表可以通过字符串的 join 方法进行拼接
使用''.jojn(ls)方法拼接列表,''表示用于拼接的符号,ls是需要拼接的列表
''.join(ls) #使用空字符进行拼接
'hello world!'
'---'.join(ls) #使用其他字符进行拼接
'h---e---l---l---o--- ---w---o---r---l---d---!'
3. 元组
元组(tuple)表示任意元素的序列,元素可以是任意数据类型,序列中的元素不能增,删,改,可以说元组就是不可变的列表。
3.1 元组的定义元组通过一对小括号进行定义,元组之间使用逗号隔开。
a = () #空元组 b = ('a', 'b', 'c') #字符串 c = (1, 2, 3) #数字 d = (1, []) #列表 e = (1, ()) #元组 f = 1, 2, 'a' #可以直接加逗号不加括号赋值
print('a的类型为:', type(a)) # a的类型为:print('b的类型为:', type(b)) # b的类型为: print('c的类型为:', type(c)) # c的类型为: print('d的类型为:', type(d)) # d的类型为: print('e的类型为:', type(e)) # e的类型为: print('f的类型为:', type(f)) # f的类型为:
a的类型为:b的类型为: c的类型为: d的类型为: e的类型为: f的类型为:
# 单元素元组的定义,一定要加逗号 t = 'a', s = 'a'
print(type(t)) print(type(s))
3.2 元组的索引和切片
序列的索引和切片完全一致,参加字符串
3.3 元组的常用 *** 作元组的元素不能修改,增加和删除,其他 *** 作和列表的 *** 作一致。
元组利用不可修改的特性,应用在多变量赋值和函数多返回值上。
a, b = (1, 2) #多元素的赋值 # 多写成a, b = 1, 2 print(a, type(a)) print(b, type(b))
12
# 交换a, b的值 a, b = b, a print(a) print(b)
3.4 len函数2 1
python 内建函数 len 可以获取对象中包含的元素个数
s = 'hello' ls = [1,2,3] t = (1,2,3) print(len(s)) print(len(ls)) print(len(t))
4. 可变与不可变对象5 3 3
python 中的对象根据底层内存机制分为可变与不可变两种。
可变对象可以在其 id() 保持固定的情况下改变其取值。
下面的列表 a,修改值后,id 保持不变
a = [1, 2, 3] id(a)
2443999948288
a[0] = 'a' print(a) id(a)
['a', 2, 3]2443999948288
基本数据类型中列表,集合和字典都是可变数据类型。
如果修改一个对象的值,必须创建新的对象,那么这个对象就是不可变对象。
s = 'hello' id(s)
2443995686000
s = 'Hello' # 不可变类型改变其中的元素,则id也改变 id(s)
2444000271280
基本数据类型中数字,字符串,元组是不可变对象。
5. 可哈希对象
一个对象的哈希值如果在其生命周期内绝不改变,就被称为可哈希。可哈希对象都可以通过内置函数 hash 进行求值。
它们在需要常量哈希值的地方起着重要的作用,例如作为集合中的元素,字典中的键。
不可变数据类型都是可哈希对象,可变数据类型都是不可哈希对象。
hash(1)
1
hash((1, 2))
-3550055125485641917
hash([1, 2]) # 可变类型列表,就不可以哈希
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) ~AppDataLocalTemp/ipykernel_19672/3864786969.py in----> 1 hash([1, 2]) TypeError: unhashable type: 'list'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)