草庐IT

Pythonic

全部标签

python - 基于已安装的模块编写条件语句的 Pythonic 方式是什么?

来自C++世界,我习惯于使用CMake等工具编写基于在编译时确定的标志的条件编译。我想知道模仿此功能的最Pythonic方式是什么。例如,这是我目前根据是否找到模块设置的:importimptry:imp.find_module('petsc4py')HAVE_PETSC=TrueexceptImportError:HAVE_PETSC=False然后我可以在其余的Python代码中使用HAVE_PETSC。这行得通,但我想知道这是否是在Python中执行此操作的正确方法。 最佳答案 是的,没关系。您甚至可以直接发出导入,并且使用模

从字典中查找加权最小值和最大值键的 Pythonic 方法

我正在处理与此类似的数据集:animals={"antelope":{"latin":"Hippotragusequinus","cool_factor":1,"popularity":6},"ostrich":{"latin":"Struthiocamelus","cool_factor":3,"popularity":3},"echidna":{"latin":"Tachyglossusaculeatus","cool_factor":5,"popularity":1}}我要做的是找到按受欢迎程度加权的“最不酷”和“最酷”的动物,这样:>min_cool_weighted(anim

python - 进行输入验证的大多数 Pythonic 方式

这个问题在这里已经有了答案:Askingtheuserforinputuntiltheygiveavalidresponse(22个答案)关闭7年前。在Python中进行用户输入验证的最“正确”、Pythonic方式是什么?我一直在使用以下内容:whileTrue:stuff=input("Pleaseenterfoo:")try:some_test(stuff)print("Thanks.")breakexceptSomeException:print("Invalidinput.")我想这很好而且可读,但我不禁想知道是否没有一些内置函数或我应该使用的东西。

python - 'or' 是否用在赋值 pythonic 的右侧?

情况(注意:以下情况只是示例性的。本题适用于任何可以计算为bool的东西)如果用户不提供自定义列表,则应使用默认列表:default_list=...custom_list=...ifcustom_list:list=custom_listelse:list=default_list您可以将其缩短为:default_list=...custom_list=...list=custom_listifcustom_listelsedefault_list现在,根据https://docs.python.org/2.7/reference/expressions.html#or...Thee

验证参数的 Pythonic 方法是一个序列而不是字符串

我有一个函数获取数据库表的列表作为参数,并返回要在这些表上执行的命令字符串,例如:pg_dump(file='/tmp/dump.sql',tables=('stack','overflow'),port=5434name=europe)应该返回如下内容:pg_dump-tstack-toverflow-f/tmp/dump.sql-p5434europe这是使用tables_string='-t'+'-t'.join(tables)完成的。当使用以下函数调用函数时,乐趣就开始了:tables=('stackoverflow')(一个字符串)而不是tables=('stackoverf

dictionary - 从字典中递增和分配 id 的 Pythonic 方法

这似乎是一个很常见的模式:forrowinreader:c1=row[0]ifids.has_key(c1):id1=ids.get(c1)else:currid+=1id1=curridids[c1]=currid我想知道是否有更好的方法来实现这一点。就单行if语句而言,我可以做很多事情:id1=ids.get(c1)ifids.has_key(c1)elsecurrid+1但是我坚持递增currid并在执行else情况时坚持并在if条件通过时将c->id1坚持到字典中。 最佳答案 如果ids从0开始:forrowinreader

python - 是否有更优雅的 pythonic 方式来表达以下条件表达式?

如果有的话,我想要一个更pythonic的方式用于以下分支:ifa是否有任何三元运算符? 最佳答案 使用嵌套的三元运算符。func1()ifa对于您的具体示例:a.append('value')ifa 关于python-是否有更优雅的pythonic方式来表达以下条件表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14851041/

python - 是否有更多 pythonic 方法来编写只更新变量的 while 循环?

我有这个while循环,我想知道他们是否是一种更pythonic的编写方式:k=1whilenp.sum(s[0:k])/s_sums是一个numpy向量。谢谢! 最佳答案 我会说它非常pythonic:显式优于隐式。 关于python-是否有更多pythonic方法来编写只更新变量的while循环?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22441823/

在不同的有限参数上重复方法调用的 Pythonic 方式

我正在盯着自己编写的一段Python代码看,虽然它是正确的,但很丑陋。是否有更pythonic的方式来做到这一点?r=self.get_pixel(x,y,RED)g=self.get_pixel(x,y,GREEN)b=self.get_pixel(x,y,BLUE)t=function(r,g,b)ift:r2,g2,b2=tself.set_pixel(x,y,RED,r2)self.set_pixel(x,y,GREEN,g2)self.set_pixel(x,y,BLUE,b2)问题是重复调用get_pixel和set_pixel的方法。供您引用:RED,GREEN,BLUE

python - 将多个函数包装在同一个 with 语句中的 pythonic 方法是什么

我正在使用Python库,Fabric,做一些远程服务器维护。Fabric会自动输出对远程和本地命令的所有响应,除非您将命令包装在一对with语句中。像这样,在本地机器上,withsettings(warn_only='true'):withhide('running','stdout','stderr','warnings'):output=local("uname-a",True)或者在远程机器上像这样:withsettings(warn_only='true'):withhide('running','stdout','stderr','warnings'):output=run