小编dav*_*loo的帖子

Python的内部列表,访问和调整运行时的大小

Python []是列表还是数组?
索引O(1)的访问时间是否像数组一样,O(n)是否像列表一样?
是将O(1)像列表一样追加/调整大小,还是像数组一样调整O(n),还是可以管理O(1)来访问和调整大小?

在这里读到 Python中的数组访问速度非常慢.然而,当我使用字典(Python的字典假设非常快)和列表编写了一个递归的fibonacci过程的memoized版本时,它们有相同的时间.为什么是这样?

Python元组的访问时间是否比python列表快?

python time space list internals

30
推荐指数
2
解决办法
1万
查看次数

使用Python lxml时出错"加载外部实体失败"

我正在尝试解析从Web检索的XML文档,但在解析此错误后崩溃了:

': failed to load external entity "<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="GreenButtonDataStyleSheet.xslt"?>
Run Code Online (Sandbox Code Playgroud)

这是下载的XML中的第二行.有没有办法阻止解析器尝试加载外部实体,或者另一种方法来解决这个问题?这是我到目前为止的代码:

import urllib2
import lxml.etree as etree

file = urllib2.urlopen("http://www.greenbuttondata.org/data/15MinLP_15Days.xml")
data = file.read()
file.close()

tree = etree.parse(data)
Run Code Online (Sandbox Code Playgroud)

python xml lxml elementtree

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

Python中的列表推导是否以内存有效的方式减少?

我是Python的初学者,这是我的第一篇文章,所以不要太苛刻:).我最近一直在玩Python,并且想知道是否有类似的东西

max([x for x in range(25)]) 
Run Code Online (Sandbox Code Playgroud)

会导致Python首先创建所有元素的列表,然后找到最大值,产生O(2n)时间,或者它会跟踪Θ(n)迭代时的最大值.另外,由于Python3中的范围不同(是可迭代的),是否会使它与Python2中的不同?

python reduce list

8
推荐指数
1
解决办法
553
查看次数

python堆栈是否会随着递归过程执行的迭代过程而增长?

我知道Python不支持尾调用优化.这是否意味着具有迭代过程的递归过程(如下面定义的阶乘)将消耗O(n)内存,或者没有延迟操作的事实意味着空间将是O(1)?

def factorial(n, accum=1):
    if n == 0:
        return accum
    else:
        return factorial(n-1, accum * n)
Run Code Online (Sandbox Code Playgroud)

python tail-recursion tail-call-optimization

5
推荐指数
1
解决办法
294
查看次数

Edittext to String

在Android上我试图把一个Edittext变成一个字符串.该toString()方法不起作用,当我打印出来时,playerName为null.有没有其他方法可以将edittext转换为字符串?

AlertDialog.Builder alert = new AlertDialog.Builder(this);
        alert.setMessage("Your Name");
        final EditText input = new EditText(this);
        alert.setView(input);
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                playerName = input.getText().toString();
            }
        });
        alert.show();
Run Code Online (Sandbox Code Playgroud)

android android-edittext

4
推荐指数
3
解决办法
4万
查看次数

Python中的**kwargs是渴望还是懒惰?

我正在尝试执行Django查询:

#att.name is a string
kwargs = {att.name : F('node__product__' + att.name) }
temps = Temp.objects.exclude(**kwargs)
Run Code Online (Sandbox Code Playgroud)

我想知道这是否正确.到目前为止我看到的所有示例都在值中使用字符串,但是如果值是函数,我应该将值设为字符串,就像这样吗?

kwargs = {att.name : 'F('node__product__' + att.name)' }
Run Code Online (Sandbox Code Playgroud)

值中的函数是否在参数列表中急切执行,还是等到需要它?

python django lazy-evaluation kwargs

0
推荐指数
1
解决办法
525
查看次数