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()
特别地,在列表最后添加元素时,indexlen(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不可变:可变数据类型

posted @ 2019-08-05 15:35  年少无为腿毛怪  阅读(341)  评论(0编辑  收藏  举报