我一直认为函数式编程可以用Python来完成。 因此,我很惊讶Python在这个问题上没有太多提及,当提到时,它通常不是很积极。 然而,没有多less原因给出(缺less模式匹配和代数数据types被提及)。 所以我的问题是:为什么不是Python对函数式编程非常好? 是否有比缺乏模式匹配和代数数据types更多的原因? 或者这些概念对函数式编程如此重要,以至于不支持它们的语言只能被归类为二次函数式编程语言。 (请记住,我在函数式编程方面的经验非常有限。)
我一直在使用Mac python,而且我决定自学matplotlib ,因为我想用一些常用模块的经验。 我听到大家的意见,一旦你进入非标准模块,最好使用python扔自制软件,所以你有权访问pip而不是easy_install 。 运行后: $brew install python –with-brewed-openssl , $brew install python3 –with-brewed-openssl , $pip install matplotlib ,我用$python3去python shell。 一旦那里,我运行import matplotlib.pyplot as plt ,并得到以下内容: Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import matplotlib.pyplot […]
我的数据文件如下所示: 3.6-band 6238 Over 0.5678 Over 0.6874 Over 0.7680 Over 0.7834 我想要做的是挑出最小的浮点数和正上方的单词,并打印这两个值。 我不知道我在做什么。 我试过了 df=open('filepath') for line in df: df1=line.split() df2=min(df1) 我试图至less试图隔离最小的浮点数。 问题是给我最后的价值。 我认为这是一个问题,python不知道重新开始,但再次…不知道我在做什么。 我试图df2=min(df1.seek(0))没有成功,得到一个错误,说no attribute seek 。 所以这就是我到目前为止的尝试,我仍然不知道如何打印最小浮点数之前的行。 build议/帮助/意见,将不胜感激,谢谢。 作为一个方面说明:这个数据文件是一个具有相似特征的较大文件的例子,但“Over”这个词也可能是“Under”,这就是为什么我需要打印它。
我正在开发一个具有类似于以下文件结构的包: test.py package/ __init__.py foo_module.py example_module.py 如果我在test.py中调用import package ,我想让包模块看起来像这样: >>> vars(package) mapping_proxy({foo: <function foo at 0x…}, {example: <function example at 0x…}) 换句话说,我希望package中所有模块的成员都在package的名称空间中,而且我不希望这些模块本身位于名称空间中。 package不是一个子包。 假设我的文件如下所示: foo_module.py: def foo(bar): return bar example_module.py: def example(arg): return foo(arg) test.py: print(example('derp')) 如何构造test.py,example_module.py和__init__.py中的import语句,以便从package目录(即test.py)之外和包本身(即foo_module.py和example_module.py)中工作? 我尝试的所有东西给Parent module '' not loaded, cannot perform relative import或ImportError: No module named 'module_name' 。 另外,作为一个旁注(根据PEP 8):“对于包内导入的相对导入是非常不鼓励的,对于所有的导入都要使用绝对的包path,即使现在PEP 328已经在Python 2.5中完全实现,明确的相对import是积极的阻止;绝对import更便携,通常更具可读性。 […]
我新来的Python,所以请原谅我的Noob-ness。 我试图在我的应用程序窗口底部创build一个状态栏,但似乎每次我在同一个文件中使用pack()和grid()方法,主应用程序窗口不会打开。 当我注释掉statusbar.pack(side = BOTTOM,fill = X)这一行时,我的应用程序窗口打开的很好,但是如果我把它放在它里面,并且如果我注释掉任何使用grid方法的行窗口打开状态栏。 看来我只能使用pack()或grid(),但不能同时使用。 我知道我应该能够使用这两种方法。 有什么build议么? 代码如下: from Tkinter import * import tkMessageBox def Quit(): answer = tkMessageBox.askokcancel('Quit', 'Are you sure?') if answer: app.destroy() app = Tk() app.geometry('700×500+400+200') app.title('Title') label_1 = Label(text = "Enter number") label_1.grid(row = 0, column = 0) text_box1 = DoubleVar() input1 = Entry(app, textvariable = text_box1) input1.grid(row […]
我想要replacestring中第n个子string的出现。 有什么相当于我想要做的是什么 mystring.replace("substring", 2nd) 什么是最简单,最Pythonic的方式来实现这一目标? 为什么不重复:我不想使用这种方法的正则expression式,我发现大多数类似问题的答案只是正则expression式剥离或真正复杂的function。 我真的想要尽可能简单,而不是正则expression式的解决scheme。
我有一个简单的Python脚本,recursion地检查是否有一个范围的n数字是一个数字x因素。 如果任何数字不是因素,我会返回False ,否则当n==1我会返回True 。 不过,我一直在返回NoneType并会赞赏如何解决这个问题的build议。 #Function def recursive_factor_test(x, n): if n==1: return True else: if x % n == 0: #print "passed {}".format(n) recursive_factor_test(x,n-1) else: return False #Example Expecting False print recursive_factor_test(5041,7) >>False #Example Expecting True print recursive_factor_test(5040,7) >>None type(recursive_factor_test(5040,7)) >>NoneType
我已经写了一个简短的模块,可以传递一个图像,只需创build一个Tkinter窗口并显示它。 我遇到的问题是,即使当我实例化并调用在单独的线程中显示图像的方法时,主程序将不会继续,直到Tkinter窗口closures。 这是我的模块: import Image, ImageTk import Tkinter class Viewer(Tkinter.Tk): def __init__(self,parent): Tkinter.Tk.__init__(self,parent) self.parent = parent self.initialize() def initialize(self): self.grid() def show(self,img): self.to_display = ImageTk.PhotoImage(img) self.label_image = Tkinter.Label(self,image=self.to_display) self.label_image.grid(column = 0, row = 0, sticky = "NSEW") self.mainloop() 它似乎工作正常,除非我从我的testing程序,如下所示调用它,它似乎不会允许我的testing程序继续,即使在不同的线程启动。 import Image from viewer import Viewer import threading def showimage(im): view = Viewer(None) view.show(im) if __name__ […]
我有一个问题插入到使用ArrayField与JSONField里面的字段。 models.py locations = ArrayField(JSONField(null = True,blank = True), blank=True, null = True) 插 location_arr = [{"locations" : "loc1","amount":Decimal(100.00)},{"locations" : "loc2","amount":Decimal(200.25)}] instance.locations = location_arr instance.save() 当我这样做,我得到了 列“位置”的types是jsonb [],但expression式的types是text [] LINE 1:… d“= 2517,”locations“= ARRAY ['{”loc … 提示:您将需要重写或转换expression式。 所以我试图转储它使用: import json location_arr = [{"locations" : "loc1","amount":Decimal(100.00)},{"locations" : "loc2","amount":Decimal(200.25)}] instance.locations = json.dumps(location_arr) instance.save() 然后我得到了这个 LINE 1:… d“= […]
给出一个变体长度特征列表: features = [ ['f1', 'f2', 'f3'], ['f2', 'f4', 'f5', 'f6'], ['f1', 'f2'] ] 其中每个样本具有不同数量的特征,并且特征dtype是str并且已经很热。 为了使用sklearn的特征select工具,我必须将features转换成如下的2D数组: f1 f2 f3 f4 f5 f6 s1 1 1 1 0 0 0 s2 0 1 0 1 1 1 s3 1 1 0 0 0 0 我怎么能通过sklearn或numpy实现呢?