相关疑难解决方法(0)

列表是否是线程安全的?

我注意到经常建议使用具有多个线程的队列,而不是列表和.pop().这是因为列表不是线程安全的,还是出于其他原因?

python multithreading list python-multithreading python-3.x

137
推荐指数
3
解决办法
8万
查看次数

Python:迭代列表时删除列表元素

我正在迭代Python中的元素列表,对其执行某些操作,然后在满足特定条件时将其删除.

for element in somelist:
    do_action(element)
    if check(element):
        remove_element_from_list
Run Code Online (Sandbox Code Playgroud)

我应该用什么代替remove_element?我已经看到了类似的问题,但注意到要为所有元素执行的do_action部分的存在,从而消除了使用过滤器的解决方案.

python list

78
推荐指数
5
解决办法
11万
查看次数

从列表中弹出随机元素的最pythonic方法是什么?

假设我有一个x未知长度的列表,我想从中随机弹出一个元素,以便列表之后不包含该元素.什么是最pythonic的方式来做到这一点?

我可以用一个相当不方便combincation做到这一点pop,random.randint以及len和希望看到更短的或更好的解决方案:

import random
x = [1,2,3,4,5,6]
x.pop(random.randint(0,len(x)-1))
Run Code Online (Sandbox Code Playgroud)

编辑:我想要实现的是从列表中连续弹出随机元素.(即,随机弹出一个元素并将其移动到字典中,随机弹出另一个元素并将其移动到另一个字典,...)


请注意,我使用的是Python 2.6,并且没有通过搜索功能找到任何解决方案.

python random list

69
推荐指数
6
解决办法
6万
查看次数

使用裸露的'除外'有什么问题?

我尝试使用PyAutoGui创建一个函数来检查屏幕上是否显示图像,并提出了这个:

def check_image_on_screen(image):
    try:
        pyautogui.locateCenterOnScreen(image)
        return True
    except:
        return False
Run Code Online (Sandbox Code Playgroud)

它工作正常,但PyCharm告诉我,我不应该except裸露.把它留下来有什么问题?有没有更合适的方法来创建相同的功能?

python except bare pyautogui

15
推荐指数
2
解决办法
5299
查看次数

Python。如何从 Python 中的列表中删除零

X = [0,5,0,0,3,1,15,0,12]

for value in range(0,len(X)):

    if X[value] <= 0:
        del X[value]
        print(X)
print(X)
Run Code Online (Sandbox Code Playgroud)

我运行了代码,但是我收到一条错误消息,指出列表超出了索引范围。有人可以帮我解决这个错误吗

python

7
推荐指数
2
解决办法
3万
查看次数

当grep找不到匹配项时,带有grep命令的subprocess.check_output失败

我正在尝试搜索文本文件并检索包含一组特定单词的行.这是我正在使用的代码:

tyrs = subprocess.check_output('grep "^A" %s | grep TYR' % pocket_location, shell = True).split('\n')
Run Code Online (Sandbox Code Playgroud)

当文件包含grep标识的至少一行时,这可以正常工作.但是当grep没有标识任何行时,grep返回退出状态1并且我收到以下错误:

Traceback (most recent call last):
  File "../../Python_scripts/cbs_wrapper2.py", line 324, in <module>
    tyrs = subprocess.check_output('grep "^ATOM" %s | grep TYR' % pocket_location, shell = True).split('\n')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 544, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'grep "^ATOM" cbsPrediction_files/1u9c_clean/1u9c_clean_fpocket_out/pockets/pocket0_atm.pdb | grep TYR' returned non-zero exit status 1
Run Code Online (Sandbox Code Playgroud)

我该如何避免这个问题?subprocess.check_output如果grep找不到任何内容,我只想返回一个空字符串.

谢谢

python grep subprocess

6
推荐指数
2
解决办法
6048
查看次数

如何在Python中迭代元素时从列表中删除元素?

假设我有一个数字列表:

L = [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

当我迭代它时,如何从列表中删除一个元素,比方说3?

我尝试了以下代码,但它没有这样做:

for el in L:
  if el == 3:
    del el
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢,Boda Cydo.

python

4
推荐指数
1
解决办法
2431
查看次数

根据项目的特殊属性从列表中删除项目

我有一个由定义的项目组成的列表,每个项目都有一个属性 .name

t = [item1, item2]
Run Code Online (Sandbox Code Playgroud)

我想根据其属性从t列表中删除项目.name,例如remove()或pop()方法。也许我可以做类似的事情:

t.remove(item.name=="Removed me")
Run Code Online (Sandbox Code Playgroud)

也许我不需要遍历整个列表来过滤掉需要删除的项目。

python list

4
推荐指数
1
解决办法
2355
查看次数

从字典、python 的列表值中删除“nan”

我有这本词典:

dict_new = 
{'extracted_layout': [nan, nan, nan, nan, nan, nan, nan, nan, nan, 'shyamanna layout', nan, nan, nan, nan, 'm t s layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'green glen layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'h s r layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'vikas layout', 'annaiah reddy layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, …
Run Code Online (Sandbox Code Playgroud)

python dictionary list python-2.7

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

如何在python中打印元组的差异

我想输出差异两个元组并删除元组上的一个元素

a = [(1,2),(2,3),(3,3)]
if (1,2) in a:
       ## how to remove (1,2) on tuple 
Run Code Online (Sandbox Code Playgroud)

我需要输出[(2,3),(3,3)]怎么做?

谢谢,

python python-2.7 python-3.x

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

如何删除python列表中的特定值

result = [(u'ABC', u'(Choose field)', u'ABCD', u'aa', u'A', u'A_100')]
Run Code Online (Sandbox Code Playgroud)

我尝试'(Choose field)'使用以下语法从上面的列表中删除:

result.remove('(Choose field)')
# and  
result.remove("'(Choose field)'")
Run Code Online (Sandbox Code Playgroud)

但这两件事都不能正常工作,最终会出现此错误

result = [(u'ABC', u'(Choose field)', u'ABCD', u'aa', u'A', u'A_100')]
Run Code Online (Sandbox Code Playgroud)

python

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

如何从列表中删除元组

这是我的元组列表:

[('Abbott', 'Texas'), ('Abernathy', 'Texas'), ('Abilene', 'Texas'), ('Ace', 'Texas'), ('Ackerly', 'Texas'), ('Alba', 'Texas'),('Addison', 'Texas'), ('Adkins', 'Texas'), ('Adrian', 'Texas'), ('Afton', 'Texas'), ('Agua Dulce', 'Texas'), ('Aiken', 'Texas'), ('Alamo', 'Texas'), ('Alanreed', 'Texas'), ('Albany', 'Texas')]
Run Code Online (Sandbox Code Playgroud)

从上面的元组列表中我想删除 ('Alba', 'Texas')

我尝试了很多方法,但没有给我预期的结果。

我试过了

[x for x in listobj if any(y is not Alba for y in x)] 
Run Code Online (Sandbox Code Playgroud)

python tuples list

-1
推荐指数
1
解决办法
3万
查看次数