append|extend|insert|add
Python中 append|extend|insert|add 区别
append(seq)
将对象作为一个整体,添加到列表末尾
,添加后列表仅增加1
个元素。该对象可以是任意数据类型,函数没有返回值。
a = [1, 2, 'python'] b = ['mac', 'linux'] a.append(b) a -- > [1, 2, 'python', ['mac', 'linux']]
extend(seq)
将一个可迭代对象中的所有元素(N个),逐个添加到列表末尾
,添加后列表元素增加N
个;
通常,可迭代对象为list;为字符串时把每个字符逐个添加到列表末尾;为字典时,将字典的key
添加到列表末尾。函数没有返回值。
a = [1, 2, 3] b = ['mac', 'python'] c = 'linux' a.extend(b) a -- > [1, 2, 3, 'mac', 'python', 'mac', 'python'] a.extend(c) a -- > [1, 2, 3, 'mac', 'python', 'mac', 'python', 'l', 'i', 'n', 'u', 'x']
insert(index, obj)
将对象作为一个整体,添加到列表的指定位置
,添加后列表仅增加1个元素,方法类似append()
;
特别地,在列表最后添加元素时,index
为len(object)
,index
为-1
时插入到倒数第二的位置,并非末尾。
a = [1, 2, 3] b = 'python' a.insert(1, b) a -- > [1, 'python', 2, 3]
add(element)
将对象作为一个整体,为集合(set)
添加元素,若添加的元素已在集合中,则不执行任何操作
a = {"python", "mac"} b = "linux" a.add(b) a -- > {'linux', 'mac', 'python'}
Python中 del remove pop 区别
python中有3个删除元素的方法:del remove pop
虽然它们都是删除元素,用于删除列表、字符串等里面的元素,但是用法可不完全一样,元组由于是不可变的,所以不能使用哦!那么接下来就来看看它们之间有什么区别:
# 代码源列表如下: a_list = ['Mecell', 18, 'Python', True, None, [1, 2, 3], 'Python']
1. del——指定索引值删除
# del 列表[索引值] del a_list[1] # 源列表: ['Mecell', 18, 'Python', True, None, [1, 2, 3], 'Python'] # del删除数据后的列表: ['Mecell', 'Python', True, None, [1, 2, 3], 'Python']
2. remove——默认移除第一个出现的元素
# 列表.remove[删除对象] # 对象可以是列表里面的任何数据类型:字符串、数字、bool等 a_list.remove['Python'] # 源列表: ['Mecell', 18, 'Python', True, None, [1, 2, 3], 'Python'] # remove删除数据后的列表: ['Mecell', 18, True, None, [1, 2, 3], 'Python'] 从结果可以看出,列表里面有两个'Python',但是实际上只是删除了第一个,最后一个并没有删除,这就是remove的特点,需要大家注意!
3. pop——括号内不添加索引值,则默认删除列表中的最后一个元素;反之则默认根据索引值删除
# 列表.pop() --删除最后一个元素 a_list.pop() # 源列表: ['Mecell', 18, 'Python', True, None, [1, 2, 3], 'Python'] # pop删除数据后的列表: ['Mecell', 18, 'Python', True, None, [1, 2, 3]] # 列表.pop(索引值) --指定索引值删除 a_list.pop(3) # 源列表: ['Mecell', 18, 'Python', True, None, [1, 2, 3], 'Python'] # pop删除数据后的列表: ['Mecell', 18, 'Python', None, [1, 2, 3], 'Python']
一、列表类型内置方法
1.用途:多个装备、多个爱好、多门课程,甚至是多个女朋友
2.定义:[]内可以有多个任意类型的值,逗号分隔元素
4.存一个值or多个值:多个值
5.有序or无序:有序
hobby_list = ['read', 'run', 'girl']
print(f'first:{id(hobby_list)}')
hobby_list[2] = ''
print(f'second:{id(hobby_list)}')
first:4522187016
second:4522187016
6.可变or不可变:可变数据类型
二、元组类型内置方法
1.用途:多个装备、多个爱好、多门课程,甚至是多个女朋友
2.定义:在()内可以有多个任意类型的值,逗号分隔元素
4.存一个值or多个值:多个值
5.有序or无序:有序
name_tuple = ('nick',)
print(f'first:{id(name_tuple)}')
first:4394454152
6.可变or不可变:不可变数据类型
三、字典类型内置方法
1.用途:存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。
2.定义:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。
4.存一个值or多个值:多个值,值可以是多个类型,key必须是不可变类型,通常应该是不可变类型中的字符串类型
5.有序or无序:无序
dic = {'a': 1, 'b': 2}
print(f'first:{id(name)}')
dic['a'] = 3
print(f'second:{id(name)}')
first:4356627632
second:4356627632
6.可变or不可变:可变数据类型
四、集合类型内置方法
1.用途:用于关系运算的集合体,由于集合内的元素无序且集合元素不可重复,因此集合可以去重,但是去重后的集合会打乱原来元素的顺序。
2.定义:{}内用逗号分隔开多个元素,每个元素必须是不可变类型。
3.s = {} # 空大括号是字典,不是集合,定义空集合必须得用set()
4.存一个值or多个值:多个值,且值为不可变类型。
5.有序or无序:无序
s = {1, 2, 'a'}
print(f'first:{id(s)}')
s.add(3)
print(f'second:{id(s)}')
first:4480523848
second:4480523848
6.可变or不可变:可变数据类型