相关疑难解决方法(0)

迭代时如何从列表中删除项目?

我正在迭代Python中的元组列表,并且如果它们符合某些条件,我会尝试删除它们.

for tup in somelist:
    if determine(tup):
         code_to_remove_tup
Run Code Online (Sandbox Code Playgroud)

我应该用什么代替code_to_remove_tup?我无法弄清楚如何以这种方式删除项目.

python iteration

917
推荐指数
16
解决办法
45万
查看次数

使用python list comprehension根据条件查找元素索引

当来自Matlab背景时,以下Python代码似乎很长

>>> a = [1, 2, 3, 1, 2, 3]
>>> [index for index,value in enumerate(a) if value > 2]
[2, 5]
Run Code Online (Sandbox Code Playgroud)

在Matlab中我可以写:

>> a = [1, 2, 3, 1, 2, 3];
>> find(a>2)
ans =
     3     6
Run Code Online (Sandbox Code Playgroud)

有没有用Python编写这个简短的方法,或者我只是坚持使用长版本?


感谢您对Python语法的基本原理的所有建议和解释.

在numpy网站上找到以下内容后,我想我找到了一个我喜欢的解决方案:

http://docs.scipy.org/doc/numpy/user/basics.indexing.html#boolean-or-mask-index-arrays

将该网站的信息应用于上述问题,将提供以下信息:

>>> from numpy import array
>>> a = array([1, 2, 3, 1, 2, 3])
>>> b = a>2 
array([False, False, True, False, False, True], dtype=bool)
>>> r = array(range(len(b)))
>>> r(b)
[2, 5]
Run Code Online (Sandbox Code Playgroud)

以下应该可以工作(但我手头没有Python解释器来测试它):

class my_array(numpy.array):
    def …
Run Code Online (Sandbox Code Playgroud)

python

109
推荐指数
5
解决办法
16万
查看次数

删除列表中的许多元素(python)

我有一个清单L.

我可以删除元素i:

del L[i]
Run Code Online (Sandbox Code Playgroud)

但是,如果我有一组不连续的索引要删除怎么办?

I=set([i1, i2, i3,...])
Run Code Online (Sandbox Code Playgroud)

这样做:

for i in I: 
     del L[i]
Run Code Online (Sandbox Code Playgroud)

不行.

有任何想法吗?

python list

16
推荐指数
2
解决办法
4万
查看次数

如何遍历列表时删除元素

我在遍历列表时如何删除元素时读到了这一点: 在Python中遍历列表时删除元素

以此为例:

>>> colors=['red', 'green', 'blue', 'purple']
>>> filter(lambda color: color != 'green', colors)
['red', 'blue', 'purple']
Run Code Online (Sandbox Code Playgroud)

但是,如果我想删除元素,如果它是字符串的一部分,我怎么能这样做?即如果我输入'een'(只是颜色中'绿色'字符串元素的一部分,我想过滤'绿色'?

python

2
推荐指数
1
解决办法
136
查看次数

将列表l中的每个元素移动到列表p

我想按升序将每个元素从一个列表转移到另一个列表.这是我的代码:

l=[10,1,2,3,4,5,6,7,8,9]  
p=[]  
for x in l :   
    p.append(min(l))  
    l.remove(min(l))  
print p
print l
Run Code Online (Sandbox Code Playgroud)

但它返回此结果:

[1, 2, 3, 4, 5]
[10, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它停在中途,请帮帮我...谢谢!

python

0
推荐指数
1
解决办法
93
查看次数

标签 统计

python ×5

iteration ×1

list ×1