python清空列表
㈠ python中del 语句的用法
python的del不同于C的free和C++的delete。
由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。
㈡ 如何把列表外的列表移除python
python的列表list可以用for循环进行遍历,实际开发中发现一个问题,就是遍历的时候删除会出错,例如
l = [1,2,3,4]
for i in l:
if i != 4:
l.remove(i)
print l
这几句话本来意图是想清空列表l,只留元素4,但是实际跑起来并不是那个结果。再看下面,利用index来遍历删除列表l
l = [1, 2, 3, 4]
for i in range(len(l)):
if l[i] == 4:
del l[i]
print l
这样没问题,可以遍历删除,但是列表l如果变为 l = [1,2,3,4,5]
如果还是按照上面的方法,设想一下,range开始的范围是0-4,中间遍历的时候删除了一个元素4,这个时候列表变成了= [1,2,3,5],这时候就会报错了,提示下标超出了数组的表示,原因就是上面说的遍历的时候删除了元素
所以python的list在遍历的时候删除元素一定要小心
可以使用filter过滤返回新的list
l = [1,2,3,4]
l = filter(lambda x:x !=4,l)
print l
这样可以安全删除l中值为4的元素了,filter要求两个参数,第一个是规则函数,第二个参数要求输入序列,而lambda这个函数的作用就是产生一个函数,是一种紧凑小函数的写法,一般简单的函数可以这么些
或者可以这样
l = [1,2,3,4]
l = [ i for i in l if i !=4]//同样产生一个新序列,复值给l
print l
或者干脆建立新的list存放要删除的元素
l = [1,2,3,4]
dellist = []
for i in l:
if i == 4:
dellist.append(i)
for i in dellist:
l.remove(i)
这样也能安全删除元素
所以要遍历的时候删除元素一定要小心,特别是有些操作并不报错,但却没有达到预期的效果
上面说到产生新序列,赋值等等,用python的id()这个内置函数来看对象的id,可以理解为内存中的地址,所以有个简要说明
如果
l = [1,2,3,4]
ll = l
l.remove(1)
print l//肯定是[2,3,4]
print ll//这里会是什么?
如果用id函数查看的话就发现
print id(l),id(ll)
打印出相同的号码,说明他们其实是一个值,也就是说上面的print ll将和l打印的一样,所以python有这种性质,用的时候注意一下就行了
㈢ Python如何删除列表的值:如:a=[1,2,1,3,1,1] 删除全部1的值,一个都不留
a=[1,2,1,3,1,1]
a=[iforiinaifa!=1]
㈣ python列表的特点
列表的特点
1.list(列表)是python中使用最频繁的数据类型,在其他的语言中通常叫做数组
2.专门用于存储一串信息
3.列表用[]定义,列表中的数据用“,”分割
4.列表的索引是从0开始
列表的操作
假设列表名为list
㈤ python基础之序列类型的方法——列表&元组
首先登场的选手是python的列表,列表属于可变类型,所以它将有完整的增删改查方法,让我们一起来看看具体是什么。
增,顾名思意就是可以对列表进行新增元素的操作,python的列表提供了三种新增元素的操作,分别是:append() ,insert(), extend()
首先是append(),它可以将一个元素追加到列表的末尾。
举个栗子:
上述代码中,我们使用的是li.append('新增内容')的方式来为列表添加元素
li.append()使列表li调用自身的方法append(),这样就可以在列表的末尾添加一个新的元素。
接下来是insert(),append()是排队,那insert()就是插队的意思啦,它可以将一个元素插入到列表的自定位置:
li.insert(索引,元素)
这样就将字符串helloworld插入到了列表的第四个位置里。
上面两个方法是对单个元素进行增加,如果我们需要增加多个元素怎么办?
那就可以使用我们的extend()来进行添加,extend()可以将序列中的每个元素添加到末尾:
上面的代码先定义了两个列表l1和l2,然后使用l1.extend(l2),将l2的每个元素添加到了l1的末尾。
增加讲完了,接下来进行删除操作,删除也有对应的四个方法:del(),pop(),remove(),clear()
del()是单独的方法,不需要通过列表本身来进行调用,可以直接使用:
上述代码删除了li[0],但是请注意,如果不进行索引的话,默认会将这个变量删除,请谨慎使用:
这就是删除了整个变量,再打印这个变量时就会提示变量未定义
pop()方法不带参数的话删除默认删除最后一个元素,带参数的话则删除指定的下标值:
pop()还有个神奇的地方,它可以让你需要删除的参数取出来继续使用,使用完了再进行删除:
上述代码使用pop()删除了第一个元素,然后使用第一个元素进行了一个简单的判断,说明pop()可以为我们返回删除的元素,让我们先使用,使用完再删除
remove()用来删除一个指定元素,无返回值,无法使用下标删除:
上述代码使用remove()删除了一个元素l
clear()用于清空列表,与del不同的是,它会为我们保留空列表,而不会把变量都删除:
上述代码清除了列表后,保留了空列表
改的方法就比较简单,直接索引出下标重新赋值即可:
这里就对li[0]进行了重新赋值
有通过index查询指定元素返回对应下标,也可以使用count来计算该元素出现过的次数:
除了增删改查,列表中还有其他的方法复制()、倒叙排列reverse()、从小到大排列sort()
使用li.(),再用一个变量接收复制的列表,就可以实现复制出一个新的列表来
sort()方法可以将数字类型的进行从小到大的排列,一般也用于同类型的排列
元组作为不可变类型,只能查和删,如果需要其他操作需要转换成列表
只能删除整个元组,无法使用下标值,删除后再使用会提示没有定义变量
元组只有查和删的方法,如果需要修改应先转成列表修改再转回元组,但是不建议这么做,因为修改过的元组就已经不是原来的那个元组了,而且设置元组也是为了这组数据不希望受到修改
以上就是关于列表&元组的方法了,有兴趣的小伙伴可以自己尝试一下。
如果有哪些错误或者不好的地方,还请各位大佬指出来,我会虚心接受并修改错误,谢谢!
㈥ python字典转换为list后选中最后一个值
设为星标,第一时间获取更多干货
在python中,数据类型主要由以下几类组成:
列表(list): [a, b]
元组(tuple):(a, b, )
集合(set): {a, b}
字典(Dictonary): {a: ‘aaa’, b: ‘bbb’}
1. 列表
列表(List)
列表是Python中使用最频繁的数据类型,专门用于存储一串信息
列表是一种有序和可更改的集合。允许重复的元素
列表使用[]定义,元素之间使用,分隔。例:[1,2, ...]
列表的索引从位置0开始
索引就是元素在列表中的位置编号,索引又可以被称为下标
注意:从列表中取值时,如果超过索引范围,程序会报错
虽然列表可以存储不同类型元素,但是曰常中一般存储相同类型的元素
如何使用列表
列表[索引]: 从列表中取值,获取指定索引的元素
列表[开始索引:结束索引:步长]:
返回从开始索引到结束索引-1的列表,如果设置步长,按步长跳过元素
len(列表): 获取列表的长度
元素 in 列表: 判断元素是否在列表中
列表.count(元素): 返回指定元素在列表中的个数
列表.index(元素): 返回指定元素在列表中第一次出现的索引,查找失败时报错
列表.sort(): 从小到大排序,括号内增加reverse=True ,则是从大到小排序
列表_reverse(): 逆序(反转)列表
列表.clear(): 清空列表
Eg:
# 0 init listL = [1, 2, 3, 4, 5, 7, 6]# 1 index valueL[1] # --> 2# 2 stepL[2: 5: 2] # --> [3, 5]# 3 lengthlen(L) # --> 6# 4 in6 in L # ---> True8 in L # ---> False# 5 countL.count(1) # ---> 1# 6 indexL.index(2) # ---> 1# 7 sortL.sort() # ---> [1, 2, 3, 4, 5, 6, 7] 注意:会改变自己 返回None # 8 reverseL.reverse() # 由于第7步改变了自己, 这里变成[7, 6, 5, 4, 3, 2, 1] 会改变自己 返回None # 9. clearL.clear() # ---> []
列表特有的一些使用方法
L = [1, 2, 3, 4, 5]
列表[索引]=元素:修改指定索引的元素,索引不存在会报错
L[2] = 7 L # ---> [1, 2, 7, 4, 5]
列表 . append(元素):在列表的末尾追加元素
L.append(6)L # ---> [1, 2, 7, 4, 5, 6]
列表 . insert(索引,元素):在指定索引位置插入元素,索引不存在时在末尾追加
L.insert(3, 9)L # ---> [1, 2, 7, 4, 9, 5, 6]
列表.pop(索引):
删除并返回指定索引的元素,未指定索引时删除最后一项,索引不存在时报错
L.pop(3) # 4, L 变成[1, 2, 7, 9, 5, 6]L.pop() # 6, L 变成[1, 2, 7, 9, 5]
列表 . remove(元素):删除列表中第一个出现的指定元素,查找失败时报错
L.remove(2) # L 变成[1, 7, 9, 5]
del 列表[索引]: 删除指定索引位置的元素,索引不存在时报错
del L[3] # L 变成[1, 7, 9]
列表l.extend(列表2): 将列表2拼接在列表1后
L.extend([8, 9, 10]) L # L 变成[1, 7, 9, 8, 9, 10], 等价于 L = L + [8, 9, 10]
2. 元组
元组(Tuple)
元组是一种有序且不可更改的集合, 允许重复的成员
元组与列表的类似,不同之处在于元组元素不可修改
元组使用()定义,元素之间使用,分隔。例:(a, b, …)
元组中只包含一个元素时,可以省略(),只需要在元素后加逗号
init_tuple = 100,type(init_tuple) # ---> tuple# ---- 另外写法init_tuple = (100, ) # 逗号一定要加
注意:如果一个非元组类型的数据突然变成元组,检查是不是误加了逗号
集合与元组的通用方法
元组[索引]:从元组中取值,获取指定索弓丨的元素
元组[开始索引:结束索引:步长]:
返回从开始索引到结束索引-1的元组,如果设置步长,按步长跳过元素
len(元组):获取元组的长度
元素in元组:判断元素是否在元组中
元组.count(元素):返回指定元素在元组中的个数
元组.index(元素):返回指定元素在元组中第一次出现的索引,查找失败会报错
元组和列表之间的转换
list(元组):将元组转换成列表
tuple(列表): 将列表转换成元组
3. 集合
集合(Set)
集合是一种无序和无索引的序列。没有重复的元素
集合会自动删除重复的元素,一般应用于去重、交并差运算场景
集合使用{}定义,元素之间使用,分隔。例:{a, b, …}
集合与列表的通用方法
len(集合):获取集合的长度
元素in集合:判断元素是否在集合中
集合.clear(): 清空集合
集合特有的使用方法
s = {1, 2, 3}
集合.add(元素):将元素添加到集合中
s.add(5) # ---> {1, 2, 3, 5}
集合1.update(集合2): 添加新的元素或集合到当前集合中
s.add{4, 5, 6} # ---> {1, 2, 3, 5, 4, 6}
集合.remove(元素): 删除指定的元素,元素不存在时报错
s.remove(4) # ----> {1, 2, 3, 5, 6}
集合1&集合2 : 交集,获得由集合1和集合2中都存在的元素组成的新集合
s & {3, 4, 5} # ---> {3, 5}
集合1|集合2: 并集,获得集合1和集合2中所有元素的新集合
s | {8, 9, 10} # ---> {1, 2, 3, 5, 6, 8, 9, 10}
集合1 - 集合2 : 差集,获得在集合1中存在但是在集合2中不存在的元素集合
s - {9, 10} # ---> {1, 2, 3, 5, 6, 8}
集合和列表之间的转换(也可以和元组进行转换,方式类似)
list(集合):将集合转换成列表
set(列表):将列表转换成集合
㈦ python中如何删除列表中的所有元素
a=[1,2,3]
a.clear()
㈧ python--set(集合)
一、创建集合
创建非空集合:集合中set括号中需要的参数的数据类型有:序列(包括字符串、列表、元组),字典可以转为集合,注意数值类型不能作为集合的参数,如int类型。
二、添加元素
add() 方法是将要添加的元素作为一个整体添加到集合中
update() 方法是把要传入的元素拆分成单个字符,存于集合中,并去掉重复的
三、删除元素
集合的删除操作使用的方法跟列表是一样的,使用的也是 remove 方法,只能单个删除
四、遍历集合
五、集合与字符串、列表、元组互转,集合转字典
六、查找元素并删除
函数原型: a.discard(b)
参数说明:a为一个set类型的变量;b表示要查找并删除的元素
函数作用:在集合setVar中查找element元素,如果存在则删除;如果没找到,则什么也不做。该函数没有返回值
七、pop用法
函数原型: set1.pop() 删除并返回集合set1中的第一个元素,如果为空引发KeyError错误+
八、clear、和len的用法
clear 方法用于清空集合中的所有元素
方法用于集合拷贝
len 跟求序列的长度的函数len()是一样的,返回的是集合中有多少个元素
九、求集合的交集、并集、差集和difference的用法
求集合的 交集 使用的符号是 “&”
求集合的 并集 用的是符号 “|”
求集合的 差集 使用的符号是减号 “-”
difference 等价于集合的差集 ,查看两个集合的不同之处。这种不同指的是集合s1相对于集合s2,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素组成的新集合
十、运算符判断集合间关系和issuperset、issubset的用法
集合可以使用大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)来判断某个集合是否完全包含于另一个集合,也可以使用子父集判断函数。
issuperset 集合st1是否是集合st2的父集
issubset 集合st1是否是集合st2的子集
十一、不可变集合frozenset的用法
frozenset 该集合中的内容是不可改变的,其他功能及操作跟可变集合set一样
㈨ Python基础实战之集合元素的添加和删除
集合元素的添加操作有两种方法:
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()
㈩ Python del 语句的用法是什么样
5.2. del 语句
有个方法可以从列表中按给定的索引而不是值来删除一个子项: del 语句。它不同于有返回值的 pop() 方法。语句 del 还可以从列表中删除切片或清空整个列表(我们以前介绍过一个方法是将空列表赋值给列表的切片)。例如:
>>> a = [-1, 1, 66.25, 333, 333, 1234.5]
>>> del a[0]
>>> a
[1, 66.25, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.25, 1234.5]
>>> del a[:]
>>> a
[]
del 也可以删除整个变量:
>>> del a
此后再引用命名 a 会引发错误(直到另一个值赋给它为止)。我们在后面的内容中可以看到 del 的其它用法。