列表[]的增删改查、嵌套列表、列表推导式、元组

#列表的“增”、“删”、“改”、“查”

#增: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()

打包和解包:

适用于任何的序列类型

 *代表未知元素个数的变量

猜你喜欢

转载自blog.csdn.net/Crabfishhhhh/article/details/127043088
今日推荐