Questions tagged «python»

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

16
为什么要使用lambda函数?
我可以找到很多东西,向我展示什么是lambda函数,以及语法如何工作以及什么不是。但是除了“凉爽因素”(我可以在中间调用另一个函数,整洁!)之外,我还没有看到任何令人信服的东西来说明为什么我真的需要/想要使用它们。 在我所看到的大多数示例中,这似乎更多是一种风格或结构选择。并且kinda打破了python规则中的“唯一正确的做事方式”。它如何使我的程序更正确,更可靠,更快或更易于理解?(我见过的大多数编码标准都倾向于告诉您避免在一行上写过分复杂的语句。如果这样更易于阅读,请将其分解。)
74 python  lambda 

4
如果只有一个结果,可以替代列表理解
我开始习惯于在Python中列出理解,但恐怕我使用不当。我遇到了几次使用列表推导但立即从生成的列表中获取第一个(也是唯一一个)项目的情况。这是一个例子: actor = [actor for actor in self.actors if actor.name==actorName][0] (self.actors包含一个对象列表,我正在尝试使用具有特定(字符串)名称的对象,该名称在actorName中。) 我试图从与我要寻找的参数匹配的列表中拉出对象。这种方法不合理吗?悬吊的[0]使我感到有点不安全。

4
如何在numpy中将布尔数组转换为索引数组
有没有一种有效的Numpy机制,可以根据条件为true而不是布尔掩码数组来检索数组中位置的整数索引? 例如: x=np.array([range(100,1,-1)]) #generate a mask to find all values that are a power of 2 mask=x&(x-1)==0 #This will tell me those values print x[mask] 在这种情况下,我想知道指标i的mask地方mask[i]==True。是否可以生成这些而不循环?
74 python  arrays  numpy 

18
Eratosthenes筛子-查找素数Python
只是为了澄清,这不是一个作业问题:) 我想为正在构建的数学应用程序找到质数,并遇到了Eratosthenes方法的Sieve。 我已经用Python编写了一个实现。但这太慢了。可以说,如果我想找到所有小于200万的素数。耗时> 20分钟。(我此时已停止)。我怎样才能加快速度? def primes_sieve(limit): limitn = limit+1 primes = range(2, limitn) for i in primes: factors = range(i, limitn, i) for f in factors[1:]: if f in primes: primes.remove(f) return primes print primes_sieve(2000) 更新: 我最终对这段代码进行了分析,发现花了很多时间从列表中删除一个元素。考虑到它必须遍历整个列表(最坏的情况)以找到元素,然后删除它,然后重新调整列表(也许会继续复制吗?),这是完全可以理解的。无论如何,我掏出了字典的清单。我的新实现- def primes_sieve1(limit): limitn = limit+1 primes = dict() for i in range(2, limitn): …

2
Pickle和Shelve有什么区别?
我是第一次学习对象序列化。我尝试阅读和“搜索”模块中腌制和搁板的差异,但是我不确定我是否理解。什么时候使用哪个?Pickle可以将每个python对象转换为字节流,这些字节流可以保存到文件中。那为什么我们需要搁置模块呢?泡菜不是更快吗?

6
测试BeautifulSoup中的标签中是否存在属性
我想获取<script>文档中的所有标签,然后根据某些属性的存在(或不存在)来处理每个标签。 例如,对于每个<script>标签,如果属性for存在,则执行一些操作;否则,如果bar存在该属性,则执行其他操作。 这是我目前正在做的事情: outputDoc = BeautifulSoup(''.join(output)) scriptTags = outputDoc.findAll('script', attrs = {'for' : True}) 但是这样我过滤了所有<script>带有for属性的标签...但是我丢失了其他标签(没有for属性的标签)。

8
带有回调的Python中的any()函数
Python标准库定义了一个any()函数 如果iterable的任何元素为true,则返回True。如果iterable为空,则返回False。 仅检查元素的取值为True。我希望它能够因此指定一个回调来告诉某个元素是否符合要求,例如: any([1, 2, 'joe'], lambda e: isinstance(e, int) and e > 0)


5
正则表达式错误-无需重复
使用此表达式时出现错误消息: re.sub(r"([^\s\w])(\s*\1)+","\\1","...") 我在RegExr中检查了正则表达式,它.按预期返回。但是当我在Python中尝试时,出现以下错误消息: raise error, v # invalid expression sre_constants.error: nothing to repeat 有人可以解释一下吗?
74 python  regex 

12
在Pandas中创建指定列类型的空数据框
我试图用索引创建一个空的数据框并指定列类型。我这样做的方式如下: df = pd.DataFrame(index=['pbp'],columns=['contract', 'state_and_county_code', 'state', 'county', 'starting_membership', 'starting_raw_raf', 'enrollment_trend', 'projected_membership', 'projected_raf'], dtype=['str', 'str', 'str', 'str', 'int', 'float', 'float', 'int', 'float']) 但是,出现以下错误, TypeError: data type not understood 这是什么意思?
74 python  pandas 

6
如何删除Python三引号多行字符串的额外缩进?
我有一个python编辑器,用户在其中输入脚本或代码,然后将其放入幕后的主要方法中,同时每行缩进。问题是,如果用户具有多行字符串,则通过在每个空格中插入制表符,对整个脚本进行的缩进会影响字符串。问题脚本非常简单,例如: """foo bar foo2""" 因此,在main方法中,它看起来像: def main(): """foo bar foo2""" 并且该字符串现在在每一行的开头都有一个额外的制表符。

2
如何使用python更新json文件
我正在尝试更新现有的Json文件,但是由于某种原因,请求的值未更改,但是整个值集(带有新值)被附加到原始文件中 jsonFile = open("replayScript.json", "r+") data = json.load(jsonFile) tmp = data["location"] data["location"] = "NewPath" jsonFile.write(json.dumps(data)) 结果为:必需: { "location": "NewPath", "Id": "0", "resultDir": "", "resultFile": "", "mode": "replay", "className": "", "method": "METHOD" } 实际: { "location": "/home/karim/storm/project/storm/devqa/default.xml", "Id": "0", "resultDir": "", "resultFile": "", "mode": "replay", "className": "", "method": "METHOD" } { …
74 python  json 


6
如果我不关闭Python SQLite中的数据库连接怎么办
我正在做这样的事情... conn = sqlite3.connect(db_filename) with conn: cur = conn.cursor() cur.execute( ... ) with自动提交更改。但是文档对关闭连接一无所知。 实际上,我可以conn在以后的语句(已测试)中使用。因此,似乎上下文管理器没有关闭连接。 我是否必须手动关闭连接。如果我打开它怎么办? 编辑 我的发现: 我已经测试并确认了上下文管理器中的连接未关闭。在之后__exit__,上下文管理器仅通过执行以下操作来提交更改:conn.commit() with conn并且with sqlite3.connect(db_filename) as conn相同,因此使用其中任何一个仍将保持连接活动 with 语句不会创建新的作用域,因此在with套件内创建的所有变量都可以在其外部访问 最后,您应该手动关闭连接


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.