列表:
一.列表的增删改查
1.1增
方法append():在列表末尾添加元素
方法insert(新元素索引,‘新元素值’):在任何位置添加元素
list = [10,20,30,40,50]
print(list)
list.append(60)
print(list)
list.insert(1,'new')
print(list)
2.删
del语句:根据元素在列表中的位置删除,比如del list[2]。永久删除
方法pop():删除列表末尾元素或任何位置的元素(需要在括号中指定要删除元素的索引),有返回值
方法remove():根据值删除元素,每一次只能删除第一个出现的值 #三个删除方法里效率最低的
#删除重复的元素
#删除所有的20
list = [10,20,30,40,50]
print(list)
del list[1],list[2]
print(list)
list = [10,20,30,40,50]
print(list)
print(list.pop(0))
list = [10,30,20,30,40,50]
print(list)
list.remove(30)
print(list)
list = [20,30,20,30,40,50,20,10,40,20,20]
print(list)
while 20 in list:
list.remove(20)
print(list)
3,改
和访问列表元素相似,重新传入新的值即可
4.查
就是访问列表
5.合并列表
5.1 另存新地址
5.2 扩展列表
list = [10,20]
print(list+[30,40])
print(list)
list = [10,20]
list.extend([30,40])
print(list)
二.元组
要定义一个只有1个元素的tuple,如果你这么定义:
t = (1)
t
1
定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
t = (1,)
t
(1,)
Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。
dict的key必须是不可变对象。
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
???set是不是就是元组里的列表
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:
s = set([1, 2, 3])
s
{1, 2, 3}
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
s1 & s2
{2, 3}s1 | s2
{1, 2, 3, 4}
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。