家伙。 我试图find一个问题的最优雅的解决scheme,并想知道是否有什么内置的python我试图做的。 我正在做的是这个。 我有一个列表A ,我有一个函数f ,它接受一个项目并返回一个列表。 我可以使用列表理解来转换A所有内容。 [f(a) for a in A] 但是这会返回一个列表清单; [a1,a2,a3] => [[b11,b12],[b21,b22],[b31,b32]] 我真正想要的是得到扁平化的名单; [b11,b12,b21,b22,b31,b32] 现在,其他语言有它, 传统上称为函数式编程语言中的flatmap ,而.Net将其称为SelectMany 。 python有类似的东西吗? 有没有一个整洁的方式来映射一个函数的列表,并平坦的结果? 我试图解决的实际问题是这样的; 从目录列表开始,find所有的子目录。 所以; import os dirs = ["c:\\usr", "c:\\temp"] subs = [os.listdir(d) for d in dirs] print subs currentliy给了我一个清单,但我真的想要一个清单。
什么是一个简单而有效的方法来按照行或列的方式在pandas中混洗数据框? 即如何编写一个函数shuffle(df, n, axis=0) ,它取一个dataframe,一个shuffle(df, n, axis=0)数n和一个轴( axis=0是行, axis=1是列)并返回一个dataframe的副本已经洗牌了n次。 编辑 :关键是要做到这一点,而不会破坏数据框的行/列标签。 如果你只是洗牌df.index丢失所有的信息。 我希望得到的df与原来的相同,除了行的顺序或列的顺序不同。 编辑2 :我的问题不清楚。 当我说洗牌行,我的意思是独立洗牌每一行。 所以,如果你有两个列a和b ,我希望每一行都是自己洗牌的,所以如果你只是重新sorting每一行,就没有a和b之间的相同关联。 就像是: for 1…n: for each col in df: shuffle column return new_df 但希望比天真的循环更有效。 这对我不起作用: def shuffle(df, n, axis=0): shuffled_df = df.copy() for k in range(n): shuffled_df.apply(np.random.shuffle(shuffled_df.values),axis=axis) return shuffled_df df = pandas.DataFrame({'A':range(10), 'B':range(10)}) shuffle(df, 5)
我使用sphinx和autodoc插件为我的Python模块生成API文档。 虽然我可以看到如何很好地logging特定的参数,但我找不到如何logging**kwargs参数的例子。 有没有人有一个清晰的方式来logging这些的好例子?
注意标准库的multiprocessing包中的这些行 : dict = dict list = list 将__builtins__已有的一些名称重新绑定到模块范围中有什么意义? 它试图达到什么目的? 我在git blame中search了一个解释,但是这个提交很大,没有相关的评论。
我正在使用Hadoop开发一个项目,它似乎本地合并了Java并为Python提供了stream式支持。 是否有重大的性能影响select之一? 如果在某种程度上存在显着的绩效差异,那么我在任何一个方面都可以做到足够早。
我想从一个Python程序中访问R. 我知道Rpy2,pyrserve和PypeR。 这三个选项有什么优点或缺点?
在Python 2.x中 ,我可以将自定义函数传递给sorting函数和.sort函数 >>> x=['kar','htar','har','ar'] >>> >>> sorted(x) ['ar', 'har', 'htar', 'kar'] >>> >>> sorted(x,cmp=customsort) ['kar', 'htar', 'har', 'ar'] 因为,在我的语言中,配件是这个订单来的 "k","kh",….,"ht",…"h",…,"a" 但在Python 3.x中 ,看起来像我无法通过cmp关键字 >>> sorted(x,cmp=customsort) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'cmp' is an invalid keyword argument for this function 有没有其他的select,或者我应该写我自己的sortingfunction吗? 注意:我使用“k”,“kh”等进行了简化。实际的字符是Unicodes,甚至更复杂,有时元音出现在元音前后,我做了自定义的比较function,所以这个部分是可以的。 只有问题是我无法将自定义比较函数传递给sorting或.sort
我对实际编程语言相当陌生,Python是我的第一个。 我知道我有一点Linux的方法,足以让暑假工作(我还在读高中),在工作中,我有很多空闲的时间来学习Python。 有一件事一直在让我。 Python中有什么不同,当你有像 x.__add__(y) <==> x+y x.__getattribute__('foo') <==> x.foo 我知道什么方法和东西,我得到他们做什么,但我的问题是:这些双下划线方法是如何不同于他们简单的看起来相等? PS,我不介意在编程历史上讲课,事实上,我觉得它是非常有用的知道:)如果这些主要是Python的历史方面,随意开始散漫。
在Sublime中,我们使用⌘ + b (或ctrl + b )来简单和方便地运行Python或几乎所有的语言, 代码将在源代码下方的一个小窗口中运行,并且在不再需要时可以使用退出键轻松closures。 有没有办法用Github的primefaces编辑器来复制这个function?
我应该在.gitignore文件中添加Django迁移文件吗? 由于迁移冲突,我最近得到了很多git问题,并想知道是否应该将迁移文件标记为忽略。 如果是这样,我将如何去添加我的应用程序中的所有迁移,并将它们添加到.gitignore文件?