python中list添加append元素有顺序吗

python中list添加append元素有顺序吗,第1张

List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改 *** 作)。

在Python中,向List添加元素,方法有如下4种方法(append(),extend(),insert(), +加号)

1. append() 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型。

此元素如果是一个list,那么这个list将作为一个整体进行追加,注意append()和extend()的区别。

复制代码代码如下:

>>>list1=['a','b']

>>>list1.append('c')

>>>list1

['a', 'b', 'c']

2. extend() 将一个列表中每个元素分别添加到另一个列表中,只接受一个参数;extend()相当于是将list B 连接到list A上。

复制代码代码如下:

>>>list1

['a', 'b', 'c']

>>>list1.extend('d')

>>>list1

['a', 'b', 'c', 'd']

3. insert() 将一个元素插入到列表中,但其参数有两个(如insert(1,”g”)),第一个参数是索引点,即插入的位置,第二个参数是插入的元素。

复制代码代码如下:

>>>list1

['a', 'b', 'c', 'd']

>>>list1.insert(1,'x')

>>>list1

['a', 'x', 'b', 'c', 'd']

4. + 加号,将两个list相加,会返回到一个新的list对象,注意与前三种的区别。前面三种方法(append, extend, insert)可对列表增加元素的 *** 作,他们没有返回值,是直接修改了原数据对象。 注意:将两个list相加,需要创建新的list对象,从而需要消耗额外的内存,特别是当list较大时,尽量不要使用“+”来添加list,而应该尽可能使用List的append()方法。

复制代码代码如下:

>>>list1

['a', 'x', 'b', 'c', 'd']

>>>list2=['y','z']

>>>list3=list1+list2

>>>list3

['a', 'x', 'b', 'c', 'd', 'y', 'z']

集合元素的添加 *** 作有两种方法:

1、调用add()方法,一次添加一个元素

2、调用update()方法,至少添加一个元素

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

s={10,20,40,80}

s.add(30) #一次添加一个元素

print(s) #{10,30,20,40,80}

s.updae({200,300,400}) #一次至少添加一个元素

print(s) #{200,10,300,20,400,30,80,40}

s.update([800,900]) #可以添加列表

s.update((45,55)) #可以添加元组

print(s) #{200,5510,45,300,800,20,900,400,30,80,40}

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

集合元素的删除 *** 作

1、调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出KeyError

2、调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛异常

3、调用pop()方法,一次只删除一个任意元素

4、调用clear()方法,清空集合

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

s.remove(200) #一次删除一个指定元素,如果指定的元素不存在抛出KeyError

print(s) #{55,10,45,300,800,20,900,400,30,80,40}

s.discard(900) #一次删除一个指定元素,如果指定的元素不存在不抛异常

print(s) #{55,10,45,300,800,20,400,30,80,40}

s.pop() #删除谁不知道,任意一个元素

print(s) #{55,10,45,800,20,400,30,80,40}

s.clear() #清空集合中的所有元素

print(s) #set()

List,Set都是继承自Collection接口。List特点:元素有放入顺序,元素可重复 。Set特点:元素无放入顺序,元素不可重复。注意,元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的。

有序或无序是指是否按照其添加的顺序来存储对象。List 是按照元素的添加顺序来存储的。而 Set 的实现类都有一套自己的排序算法,每添加一个元素,都会按照其内部算法将元素添加到合适的位置,所以Set集合不能有重复的元素,也不能保证内部存储是按元素添加的顺序而存储的。

List接口有三个实现类:LinkedList,ArrayList,Vector ,Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet。

扩展资料:

HashSet输入顺序:

1、当输入的值大小和底层数组大小差不多的时候,HashSet的输入顺序是无序的,但输出是有序的,因为这些数的哈希值,在底层是顺序拍的,故输出也是有序的。

2、而当输入的值大小和底层数组相差很大时,大的数的哈希值有可能是小于比他小的数的,这时候输出的结果就是无序的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11838422.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存