标签: python

如何在Python中将函数名称作为字符串?

在Python中,如何在不调用函数的情况下将函数名称作为字符串获取?

def my_function():
    pass

print get_function_name_as_string(my_function) # my_function is not in quotes
Run Code Online (Sandbox Code Playgroud)

应该输出"my_function".

这样的功能在Python中可用吗?如果没有,get_function_name_as_string在Python中如何实现任何想法?

python string function

671
推荐指数
14
解决办法
43万
查看次数

如何使用逗号作为千位分隔符打印数字?

我试图在Python 2.6.1中使用逗号作为千位分隔符打印一个整数.例如,我想将数字显示12345671,234,567.我该怎么做呢?我在Google上看过很多例子,但我正在寻找最简单实用的方法.

它不需要特定于语言环境来决定句点和逗号.我希望尽可能简单的事情.

python number-formatting

669
推荐指数
16
解决办法
39万
查看次数

如何在Python中定义二维数组

我想定义一个没有初始化长度的二维数组,如下所示:

Matrix = [][]
Run Code Online (Sandbox Code Playgroud)

但它不起作用......

我已经尝试了下面的代码,但它也是错误的:

Matrix = [5][5]
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback ...

IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

我的错是什么?

python matrix syntax-error

665
推荐指数
22
解决办法
208万
查看次数

如何删除某些列中的值为NaN的Pandas DataFrame行

我有一个DataFrame:

>>> df
                 STK_ID  EPS  cash
STK_ID RPT_Date                   
601166 20111231  601166  NaN   NaN
600036 20111231  600036  NaN    12
600016 20111231  600016  4.3   NaN
601009 20111231  601009  NaN   NaN
601939 20111231  601939  2.5   NaN
000001 20111231  000001  NaN   NaN
Run Code Online (Sandbox Code Playgroud)

然后我只想要那些EPS不是NaN,df.drop(....)即将返回数据帧的记录,如下所示:

                  STK_ID  EPS  cash
STK_ID RPT_Date                   
600016 20111231  600016  4.3   NaN
601939 20111231  601939  2.5   NaN
Run Code Online (Sandbox Code Playgroud)

我怎么做?

python nan dataframe pandas

661
推荐指数
9
解决办法
81万
查看次数

什么是在Python中拥有多个构造函数的干净,pythonic方式?

我无法找到明确的答案.AFAIK,你不能__init__在Python类中拥有多个函数.那么我该如何解决这个问题呢?

假设我有一个Cheese使用该number_of_holes属性调用的类.我怎样才能有两种创建奶酪对象的方法......

  1. 一个像这样的洞: parmesan = Cheese(num_holes = 15)
  2. 并且不带参数并且只是随机化number_of_holes属性:gouda = Cheese()

我只想到一种方法来做到这一点,但这似乎有点笨重:

class Cheese():
    def __init__(self, num_holes = 0):
        if (num_holes == 0):
            # randomize number_of_holes
        else:
            number_of_holes = num_holes
Run Code Online (Sandbox Code Playgroud)

你说什么?还有另外一种方法吗?

python constructor

660
推荐指数
9
解决办法
26万
查看次数

如果PyPy快6.3倍,为什么我不应该使用PyPy而不是CPython?

我一直听到很多关于PyPy项目的消息.他们声称它比他们网站上的CPython解释器快6.3倍.

每当我们谈论像Python这样的动态语言时,速度是最重要的问题之一.为了解决这个问题,他们说PyPy的速度要快6.3倍.

第二个问题是并行性,臭名昭着的全球口译锁(GIL).为此,PyPy表示它可以提供无GIL的Python.

如果PyPy可以解决这些巨大的挑战,它的弱点是什么阻碍了更广泛的采用?也就是说,什么阻止像我这样的人,一个典型的Python开发人员,现在切换到PyPy ?

python performance jit pypy cpython

660
推荐指数
10
解决办法
15万
查看次数

Python进展路径 - 从学徒到大师

我一直在学习,工作和玩Python一年半.随着生物学家慢慢转向生物信息学,这种语言一直是我在实验室做出的所有主要贡献的核心.我或多或少地爱上了Python允许我表达漂亮解决方案的方式,以及语言的语义,允许从思想到可行代码的这种自然流动.

我想知道的是你对我在这个论坛或其他论坛中很少见到的一个问题的答案.对于那些正在改进Python的人来说,这个问题对我来说似乎很重要,但是他想知道他的下一步应该是什么.

让我总结一下我不想先问的问题;)

  • 我不想知道如何快速学习Python
  • 我也不想找到熟悉该语言的最佳方式
  • 最后,我不想知道"一招做到这一切"的方法.

我想知道你的意见,是:

您将向Python熟练人员推荐哪些步骤,从学徒到大师状态(随意停止,无论您的专业知识在哪里),以便一个人不断改进,成为更好,更好的Python编码器,一步一步.SO上的一些人几乎看起来值得为他们的Python实力而敬拜,请赐教:)

我会喜欢的那种答案(但随意给读者带来惊喜:P)的格式或多或少是这样的:

  • 阅读本文(例如:python教程),注意那种细节
  • 代码很多时间/问题/代码行
  • 然后,阅读本文(例如:这本书或那本书),但这一次,请注意这一点
  • 解决一些现实生活中的问题
  • 然后,继续阅读Y.
  • 一定要掌握这些概念
  • 代码为X时间
  • 回到这样的基础知识或进一步向...
  • (你明白了:)

我非常关心在不同的阶段知道你应该注意什么的意见,以便不断进步(当然有适当的努力).如果您来自特定的专业领域,请在此字段中讨论您认为合适的路径.

编辑:感谢您的好评,我又回到了Python改进的轨道!我真的很感激!

python

659
推荐指数
16
解决办法
36万
查看次数

建议使用哪种Python内存分析器?

我想知道我的Python应用程序的内存使用情况,并且特别想知道哪些代码块/部分或对象占用了大部分内存.Google搜索显示商业广告是Python Memory Validator(仅限Windows).

开源的是PySizerHeapy.

我没有尝试任何人,所以我想知道哪一个是最好的考虑:

  1. 提供大部分细节.

  2. 我必须对代码进行最少或不做任何更改.

python performance profiling memory-management

657
推荐指数
8
解决办法
22万
查看次数

如何在Python中将字典键作为列表返回?

Python 2.7中,我可以将字典,项目作为列表获取:

>>> newdict = {1:0, 2:0, 3:0}
>>> newdict.keys()
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

现在,在Python> = 3.3中,我得到这样的东西:

>>> newdict.keys()
dict_keys([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

所以,我必须这样做以获得一个列表:

newlist = list()
for i in newdict.keys():
    newlist.append(i)
Run Code Online (Sandbox Code Playgroud)

我想知道,有没有更好的方法来返回Python 3中的列表?

python dictionary list python-2.x python-3.x

656
推荐指数
10
解决办法
101万
查看次数

在Python中从字符串转换为布尔值?

有没有人知道如何在Python中从字符串转换为布尔值?我找到了这个链接.但它看起来不是一个正确的方法.即使用内置功能等.

编辑:

我问这个的原因是因为我int("string")从这里学到了.我试过bool("string")但总是得到True.

>>> bool("False")
True
Run Code Online (Sandbox Code Playgroud)

python string boolean

653
推荐指数
21
解决办法
55万
查看次数