草庐IT

Pythonic

全部标签

python - 大多数没有返回的 pythonic 函数方式?

我在PEP8中找不到任何相关内容。我对你对没有返回值的函数的最pythonic语法的想法很感兴趣?是否有任何理由阻止没有返回行的函数(示例3)?示例1:deffoo():print'foo'returnNone示例2:deffoo():print'foo'pass示例3:deffoo():print'foo' 最佳答案 保持简单。示例3是最pythonic的方式。>>>importthisTheZenofPython,byTimPeters...Simpleisbetterthancomplex....

python - "pythonic"方法将逗号分隔的整数字符串解析为整数列表?

我正在读取一串整数,例如"3,2,6"并希望它们在列表[3,2,6]中作为整数。这很容易破解,但是“pythonic”的实现方式是什么? 最佳答案 mylist=[int(x)forxin'3,2,6'.split(',')]如果您不确定是否只有数字(或想丢弃其他数字):mylist=[int(x)forxin'3,2,6'.split(',')ifx.strip().isdigit()] 关于python-"pythonic"方法将逗号分隔的整数字符串解析为整数列表?,我们在Stack

Python - 如何编写更高效的 Pythonic reduce?

我正在尝试构建一个非常轻量级的Node类来用作基于Python的层次结构搜索工具。请参阅下面的定义。fromfunctoolsimportreducefromoperatorimportor_classNode:def__init__(self,name):self.name=nameself.children=[]defadd_child(self,child_node):self.children.append(child_node)defcontains(self,other_node):ifself==other_node:returnTrueelifother_nodeins

没有枚举的 Pythonic 设计

有几个关于如何在Python中实现枚举的问题。大多数解决方案最终或多或少等同于以下内容:classAnimal:DOG=1CAT=2其他人提出了更复杂的构造枚举的方法,但归根结底,最终看起来像这个例子。根据我在Java和C#方面的经验,我可以想到这种习语的各种用途。但是,它似乎不是很Pythonic。事实上,似乎每次有人问为什么Python中没有枚举时,你往往会得到一些关于如何没有理由在像Python这样的语言中尝试和强制执行编译时类型安全的固定回答的提示,或者需要枚举的设计如何在Python中产生难闻的气味。我的问题不是如何在Python中实现枚举,而是人们通常如何以Pythonic

python - Py3k : What's more pythonic - one import with commas or many imports?

什么是更pythonic的?importosimportsysimportgetopt...或importos,sys,getopt,...? 最佳答案 来自PEP8:导入通常应该在单独的行中,例如:是的:importosimportsys否:importsys,os虽然这样说没关系:fromsubprocessimportPopen,PIPE 关于python-Py3k:What'smorepythonic-oneimportwithcommasormanyimports?,我们在St

在网格中查找相邻单元格的 Pythonic 和有效方法

我正在使用pyglet/openGL在Python中构建一个基于图block的应用程序,其中我需要找到给定单元格的所有相邻单元格。我在笛卡尔网格的一个象限中工作。每个单元格都有一个x和y值,指示它在网格中的位置(x_coord和y_coord)。这些不是像素值,而是网格位置。我正在寻找一种获取相邻单元格的有效方法。最多有八个可能的相邻单元格,但由于网格的边界,可能只有3个。简单但可能效率低下的方法的伪代码看起来像这样:defget_adjacent_cells(self,cell):result=[]x_coord=cell.x_coordy_coord=cell.y_coordfor

python - 如何以 Pythonic 方式检测 CSV 文件中缺失的字段?

我正在尝试使用Python的csv模块(特别是DictReader类)解析CSV文件。是否有一种Pythonic的方法来检测空字段或缺失字段并抛出错误?这是一个使用以下header的示例文件:NAME、LABEL、VALUEfoo,bar,bazyes,nox,y,z解析时,我希望第二行抛出错误,因为它缺少VALUE字段。这是一个代码片段,展示了我是如何处理这个问题的(忽略硬编码的字符串......它们只是为了简洁而存在):importcsvHEADERS=["name","label","value"]fileH=open('configFile')reader=csv.DictRe

c - 大多数 Pythonic 方式等同于 : while ((x = next()) ! = END)

这个C结构的最佳Python习语是什么?while((x=next())!=END){....}我没有能力重新编码next()。更新:答案似乎是:forxiniter(next,END):.... 最佳答案 @MarkHarrison的回答:forxiniter(next_,END):....这是来自Python'sdocumentation的摘录:iter(o[,sentinel])Returnaniteratorobject....(snip)...Ifthesecondargument,sentinel,isgiven,the

python - 按名称初始化、设置和获取自定义对象属性的 Pythonic 方法是什么?

我是Python的新手,我需要声明我自己的数据结构,但我对如何做到这一点有点困惑。我目前有:classParticle:def__init__(self,mass,position,velocity,force):self.mass=massself.position,self.velocity,self.force=position,velocity,forcedef__getitem__(self,mass):returnself.massdef__getitem__(self,position):returnself.positiondef__getitem__(self,vel

python - 获取前一个元素的最pythonic方式

我想要一个类似enumerate的迭代器函数,它产生(previous_element,current_element)对。也就是说,假设iter是i0,i1,i1,...我希望offset(iter)产生(None,i0),(i0,i1),(i1,i2)... 最佳答案 简单(显而易见)的解决方案怎么样?defoffset(iterable):prev=Noneforeleminiterable:yieldprev,elemprev=elem 关于python-获取前一个元素的最pyt