Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。


5
如何删除lxml中的元素
我需要使用python的lxml根据属性的内容完全删除元素。例: import lxml.etree as et xml=""" <groceries> <fruit state="rotten">apple</fruit> <fruit state="fresh">pear</fruit> <fruit state="fresh">starfruit</fruit> <fruit state="rotten">mango</fruit> <fruit state="fresh">peach</fruit> </groceries> """ tree=et.fromstring(xml) for bad in tree.xpath("//fruit[@state=\'rotten\']"): #remove this element from the tree print et.tostring(tree, pretty_print=True) 我想打印: <groceries> <fruit state="fresh">pear</fruit> <fruit state="fresh">starfruit</fruit> <fruit state="fresh">peach</fruit> </groceries> 有没有一种方法可以执行此操作而无需存储临时变量并手动将其打印出来,如下所示: newxml="<groceries>\n" for elt in tree.xpath('//fruit[@state=\'fresh\']'): newxml+=et.tostring(elt) newxml+="</groceries>"
84 python  xml  lxml 


10
如何有效解析固定宽度的文件?
我试图找到一种解析文件的方法,该文件包含固定宽度的线。例如,前20个字符代表一列,从21:30开始代表另一列,依此类推。 假设该行包含100个字符,将行解析为多个组件的有效方法是什么? 我可以每行使用字符串切片,但是如果行很大,这会有点难看。还有其他快速方法吗?
84 python  parsing 

6
Python的带下划线的lambda参数?
以下代码做什么? a = lambda _:True 根据我在交互式提示中阅读和测试的内容,它似乎是一个始终返回的函数True。 我理解正确吗?我希望理解为什么还要使用下划线(_)。
84 python  lambda 

5
在线程中使用全局变量
如何与线程共享全局变量? 我的Python代码示例是: from threading import Thread import time a = 0 #global variable def thread1(threadname): #read variable "a" modify by thread 2 def thread2(threadname): while 1: a += 1 time.sleep(1) thread1 = Thread( target=thread1, args=("Thread-1", ) ) thread2 = Thread( target=thread2, args=("Thread-2", ) ) thread1.join() thread2.join() 我不知道如何让两个线程共享一个变量。

6
带* args和** kwargs的默认参数
在Python的2.x的(我用2.7),这是使用默认参数用正确的方式*args和**kwargs? 我已经找到了与此主题相关的SO问题,但这是针对Python 3的: 使用* args,** kwargs和可选的/默认参数调用Python函数 在那里,他们说此方法有效: def func(arg1, arg2, *args, opt_arg='def_val', **kwargs): #... 在2.7中,结果为SyntaxError。有没有推荐的方法来定义这种功能? 我以这种方式工作,但我猜有更好的解决方案。 def func(arg1, arg2, *args, **kwargs): opt_arg ='def_val' if kwargs.__contains__('opt_arg'): opt_arg = kwargs['opt_arg'] #...

6
如何正确地将dict子类化并覆盖__getitem__和__setitem__
我正在调试一些代码,我想找出何时访问特定词典。好吧,它实际上是一个子类dict,它实现了一些额外的功能。无论如何,我想做的是dict自己创建子类并添加重写__getitem__并__setitem__生成一些调试输出。现在,我有 class DictWatch(dict): def __init__(self, *args): dict.__init__(self, args) def __getitem__(self, key): val = dict.__getitem__(self, key) log.info("GET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val))) return val def __setitem__(self, key, val): log.info("SET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val))) dict.__setitem__(self, key, val) 'name_label'是最终要设置的键,我想用它来识别输出。然后,我将要检测的类更改为子类,DictWatch而不是子类,dict并更改了对超级构造函数的调用。不过,似乎什么都没有发生。我以为自己很聪明,但是我想知道我是否应该朝另一个方向发展。 谢谢您的帮助!

9
使用新的格式字符串记录变量数据
我将记录工具用于python 2.7.3。此Python版本的文档说: 日志记录包会早于较新的格式设置选项,例如str.format()和string.Template。这些更新的格式选项受支持... 我喜欢大括号的“新”格式。所以我正在尝试做类似的事情: log = logging.getLogger("some.logger") log.debug("format this message {0}", 1) 并得到错误: TypeError:并非在字符串格式化期间转换了所有参数 我在这里想念什么? PS我不想使用 log.debug("format this message {0}".format(1)) 因为在这种情况下,无论记录器级别如何,消息总是被格式化。


8
Python:如何将集合中的条目连接成一个字符串?
基本上,我试图将一组条目合并在一起以输出一个字符串。我正在尝试使用类似于列表的加入功能的语法。这是我的尝试: list = ["gathi-109","itcg-0932","mx1-35316"] set_1 = set(list) set_2 = set(["mx1-35316"]) set_3 = set_1 - set_2 print set_3.join(", ") 但是我得到这个错误: AttributeError: 'set' object has no attribute 'join' 集合的等效调用是什么?
84 python  list  set  python-2.7 

5
如何拆分列表的元素?
我有一个清单: my_list = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847'] 我如何删除\t和之后的所有内容以获得此结果: ['element1', 'element2', 'element3']
84 python  list  split 

11
交织两个numpy数组
假设给出以下数组: a = array([1,3,5]) b = array([2,4,6]) 一个人如何有效地交织它们,以便获得这样的第三个数组 c = array([1,2,3,4,5,6]) 可以假设length(a)==length(b)。
84 python  arrays  numpy 

7
在Python中的分隔线上打印列表元素
我正在尝试使用以下方法打印出Python路径文件夹: import sys print sys.path 输出如下: >>> print sys.path ['.', '/usr/bin', '/home/student/Desktop', '/home/student/my_modules', '/usr/lib/pyth on2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/pyth on2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-pack ages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/ usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/ python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/lib/p ython2.6/dist-packages/wx-2.8-gtk2-unicode'] 如何将它们打印到单独的行中,以便可以正确解析它们? 应该是这样的: /usr/bin /home/student/Desktop /home/student/my_modules etc
84 python 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.