python去除元素
A. python 去除列表中重复的元素
这个有几种方法来完成,但是对于不可哈希的数据来说,BIF set() 是无效的,会报错,下面介绍几种方法
对于以上4种方法,各有利弊,一般来说是方法2最快,方法1和方法3比较类似,但是方法3可以保持列表中的排序和之前的一样,但是开头也说了,这样无法对不可哈希的对象进行去重复,比如列表中的元素还是列表,这种情况下就只能用方法4了,但是方法4的缺点就是比较的慢。
B. python数组中怎样删除符合条件的元素
使用filter来实现,以python3为例,如果删除列表中的所有0,则可使用下面代码实现:
a=[1,2,0,3,4,0,5,0,6]
b=filter(lambdax:x!=0,a)
list(b)
效果如下:
注:如果使用python2则直接输出b即可,在python3中filter返回结果为可迭代的对象,需使用list转换成列表。
C. python假如要除去L中所有是x的元素,要怎么办
Python中列表元素删除
1.使用del命令删除列表中的指定位置上的元素
l = [1, 2, 3, 4, 5]del l[2] #将下标为2的元素删除print(l)#[1, 2, 4, 5]del l #将列表l删除 此时再打印输出就会报错 因为这个列表没有定义print(l)#NameError: name 'l' is not defined
[1, 2, 4, 5]
Traceback (most recent call last):
File "F:/pythonDemo/python代码/生成随机数并将奇数删除.py", line 54, in <mole> print(l)
NameError: name 'l' is not defined
当要用del命令循环删除元素时,应当倒序删除
import randomdef deleteoddnumber(x): for i in range(len(x) - 1, 0, -1): # 循环倒序 if x[i] % 2 != 0: del x[i] return x
x = []while True: if len(x) == 20: break n = random.randint(1, 100) if n not in x:
x.append(n)print('删除奇数元素前\n', x)
print('删除奇数元素后\n', deleteoddnumber(x))
删除奇数元素前 [24, 19, 71, 2, 83, 1, 6, 45, 29, 38, 78, 74, 46, 14, 93, 48, 100, 31, 25, 30]删除奇数元素后 [24, 2, 6, 38, 78, 74, 46, 14, 48, 100, 30]
若是正序删除 则会出现下标越界报错
import randomdef deleteoddnumber(x): for i in range(len(x)):# 循环正序 if x[i] % 2 != 0: del (x[i]) return x
x = []while True: if len(x) == 20: break n = random.randint(1, 100) if n not in x:
x.append(n)print('删除奇数元素前\n', x)print('删除奇数元素后\n', deleteoddnumber(x))
删除奇数元素前Traceback (most recent call last): [84, 93, 16, 40, 12, 98, 67, 97, 83, 39, 26, 25, 99, 19, 17, 62, 68, 43, 4, 47] File "F:/pythonDemo/python代码/生成随机数并将奇数删除.py", line 15, in <mole> print('删除奇数元素后\n', deleteoddnumber(x)) File "F:/pythonDemo/python代码/生成随机数并将奇数删除.py", line 4, in deleteoddnumber if x[i] % 2 != 0:IndexError: list index out of range
会出现列表下标越界错误,
2.使用列表的pop()方法删除并返回指定位置上的元素(默认为最后一个即pop(len(list)-1),删除下标为index的元素可表示为pop(index))
下标index不可以超过列表范围,否则抛出异常。
l = [1, 2, 3, 4, 5]print(l.pop(len(l)-1)) # 和l.pop()效果相同
print(l.pop(3))
54
3.使用列表对象的remove()方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。
l = [1, 2, 3, 3, 4, 5]l.remove(1) #删除元素值为1的元素l.remove(3) #删除元素值为3的元素
print(l)
[2, 3, 4, 5]
值得注意的是,删除的时候remove方法总是将第一个找到的元素进行删除 而没有把所有相同的元素值都给删除。
D. Python 中删除列表元素的三种方法
列表基本上是 Python 中最常用的数据结构之一了,并且删除操作也是经常使用的。
那到底有哪些方法可以删除列表中的元素呢?这篇文章就来总结一下。
一共有三种方法,分别是 remove , pop 和 del ,下面来详细说明。
remove 是从列表中删除指定的元素,参数是 value。
举个例子:
需要注意, remove 方法没有返回值,而且如果删除的元素不在列表中的话,会发生报错。
pop 是删除指定索引位置的元素,参数是 index。如果不指定索引,默认删除列表最后一个元素。
pop 方法是有返回值的,如果删除索引超出列表范围也会报错。
del 一般用在字典比较多,不过也可以用在列表上。
直接传元素值是不行的,会报错:
del 还可以删除整个列表:
以上就是本文的全部内容,如果觉得还不错的话,欢迎 点赞 , 转发 和 关注 ,感谢支持。
推荐阅读:
E. 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()
F. python list如何去除某个元素
1.使用remove方法,例如:
a=["aa","bb"]
a.remove("aa")
#["bb"]
2.使用pop方法,数字为索引从0开始.例如:
a=["aa","bb","cc"]
a.pop(1)
#["aa","cc"]
G. python如何删除列表中的元素
删除所有的元素用clear()方法
Remove all items:clear()
删除指定位置用pop
Remove an item by index and get its value:pop()
通过值来删除
Remove an item by value:remove()
通过index来删除
Remove items by index or slice:del
H. python如何删除list里重复的元素
一共使用四种方法来去除列表中的重复元素,下面是具体实现:
def f1(seq):
# not order preserving
set = {}
map(set.__setitem__, seq, [])
return set.keys()
def f2(seq):
# order preserving
checked = []
for e in seq:
if e not in checked:
checked.append(e)
return checked
def f3(seq):
# Not order preserving
keys = {}
for e in seq:
keys[e] = 1
return keys.keys()
def f4(seq):
# order preserving
noDupes = []
[noDupes.append(i) for i in seq if not noDupes.count(i)]
return noDupes
def f5(seq, idfun=None):
# order preserving
if idfun is None:
def idfun(x): return x
seen = {}
result = []
for item in seq:
marker = idfun(item)
# in old Python versions:
# if seen.has_key(marker)
# but in new ones:
if marker in seen: continue
seen[marker] = 1
result.append(item)
return result
def f6(seq):
# Not order preserving
set = Set(seq)
return list(set)