#列表的“增”、“删”、“改”、“查”
#增:append()
grade = [85,90,91,95,100]
grade.append(70)
grade
output :
但是呢,append()函数每次只能添加一个元素,
numbers = [1, 2, 3, 4]
numbers.append([5,6,7,8])
print len(numbers)
这时候的output就为:5
如果想要一次添加多个元素,我们就需要用到
extend() 【extend()参数必须要是一个可迭代对象!】
#列表切片:列表切片也可以完成列表元素的增加
[:]:全输出
[0:a]:输出第a-1个字符(85)
[:b]:输出第0,1,2...b-1字符(85,90,91)
[a:]:输出包括第a个字符以后的所有变量
[a:b:c]:跨度为c输出从a开始到b但不包含b的数
[::-1]:倒叙输出
[len(grade):]我的理解是先获取grade的长度然后将末尾切片后再赋值
be careful:切片可以覆盖原元素并且添加新元素
对于py3列表切片lists[start:end],当start为自然数且超出索引时,默认返回空列表[ ]
#在列表任意位置添加
除了切片以外还可以使用:
insert()
s.insert(a,b)a为插入位置,b为插入的元素;
#删:
remove()
注意了,remove()在重复的元素中,只会删除第一个元素,不会全部删除的捏
#在任一位置删除pop(),参数为下标索引值
为什么想要删除7的时候报错了呢?(pop一次只能删除一个元素,那怎么才能同时删除两个7或者删除其中一个7呢?)
#clear()方法清空列表!
#列表的更改、替换
step1.将=左边指定元素删除
step2.将包含在=右边的可迭代对象中的片段插入左边被删除的元素的位置
还可以利用切片来实现多个连续的元素的替换:
也可以利用sort()、reverse()来分别实现顺序和调转顺序:
reverse不是从小到大后倒序,而是调转顺序
要实现倒序,我们就用s.sort(reverse=True)来实现:
在sort()中,有两个可选参数(key=True——允许指定排序的算法函数)(reverse=False默认值是False,如果设置为True,排序就会翻转)。
#列表的查找【count()、index()】
count()可以查找元素出现的次数
index()可以查找元素的索引值,如果重复就只会出现第一位置的索引值
书接上回:如果我们要使用index()获取索引值,然后进行更改,就可以这样做:
还有呢,index()也有两个可选函数,即index(x,start,end)指定查找开始和结束的位置
shallow copy:
copy()用于拷贝列表:
还可以用切片达到同样的效果:
#列表的运算
列表的加法(列表+列表)
列表的乘法是重复列表内元素若干次;
#嵌套列表
#访问嵌套列表
使用循环来实现嵌套列表的访问,迭代一个列表使用一层循环,那么迭代嵌套列表就要使用嵌套循环;
二维列表的直接应用为矩阵,即matrix;
#通过循环语句创建并初始化列表:
#is运算符:is operator
is:同一性运算符,用于检验两个变量是否指向同一对象;
#列表推导式
[expression for target in iterable if conditi on ]
#元组()
元组中的元素是不可变的 但是元组中的元素是指向一个可变得列表,那么列表中的元素是可变的。
元祖的下标索引和切片与列表一致
元祖只支持count() 和 index()
打包和解包:
适用于任何的序列类型
*代表未知元素个数的变量