问题列表 - 第3159页

大多数pythonic形式用于映射一系列语句?

这有点困扰我一段时间了.在学习Python之前我学习了Haskell,所以我一直喜欢将许多计算作为映射到列表中.这是由列表理解精美表达的(我在这里给出了pythonic版本):

result = [ f(x) for x in list ]
Run Code Online (Sandbox Code Playgroud)

但在许多情况下,我们希望在x上执行多个语句,例如:

result = [ f(g(h(x))) for x in list ]
Run Code Online (Sandbox Code Playgroud)

这很快变得笨重,难以阅读.

我的正常解决方案是将其扩展回for循环:

result = []
for x in list:
  x0 = h(x)
  x1 = g(x0)
  x2 = f(x1)
  result.append(x2)
Run Code Online (Sandbox Code Playgroud)

关于这一点困扰我的一件事就是不得不初始化空列表'结果'.这是一个微不足道的事情,但它让我感到不快.我想知道是否有任何替代等效形式.一种方法可能是使用本地函数(这是他们在Python中调用的吗?)

def operation(x):
  x0 = h(x)
  x1 = g(x0)
  x2 = f(x1)
  return x2
result = [ operation(x) for x in list ]
Run Code Online (Sandbox Code Playgroud)

上述两种形式中的任何一种都有什么特别的优点/缺点吗?或者是否有更优雅的方式?

python coding-style idioms

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

如何向Appengine的webapp框架添加中间件?

我正在使用appengine webapp框架(链接).是否可以添加Django中间件?我找不到任何例子.我正在尝试让FirePython中间件工作(链接).

python django google-app-engine middleware django-middleware

3
推荐指数
1
解决办法
3079
查看次数

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

如何在shell脚本中打印JSON?

是否有(Unix)shell脚本以人类可读的形式格式化JSON?

基本上,我希望它改变以下内容:

{ "foo": "lorem", "bar": "ipsum" }
Run Code Online (Sandbox Code Playgroud)

...进入这样的事情:

{
    "foo": "lorem",
    "bar": "ipsum"
}
Run Code Online (Sandbox Code Playgroud)

unix format command-line json pretty-print

2905
推荐指数
46
解决办法
116万
查看次数

.net中最小的内存分配是一个字节是真的吗?

我可以在托管代码中分配的最小内存量是一个字节吗?

我是否正确理解布尔变量占用的内存远多于一点?

有没有办法让我在.net中以小于一个字节的块分配内存?

.net memory

3
推荐指数
2
解决办法
821
查看次数

Java的序列化如何工作以及何时应该使用它而不是其他一些持久性技术?

我最近一直在努力学习更多,并且通常测试Java的工作和个人项目的序列化,我必须说我越了解它,我就越不喜欢它.这可能是由错误的信息造成的,所以这就是为什么我要问你们这两件事:

1:在字节级别,序列化如何知道如何将序列化值与某些类匹配?

我在这里的一个问题是我用ArrayList进行了一个小测试,其中包含值"one","two","three".在序列化之后,字节数组占用了78个字节,这对于如此少量的信息(19 + 3 + 3 + 4字节)来说似乎非常多.当然,这肯定会有一些开销,但这导致了我的第二个问题:

2:序列化可以被认为是持久化对象的好方法吗?现在很明显,如果我使用一些自制的XML格式,持久性数据将是这样的

<object>
    <class="java.util.ArrayList">
    <!-- Object array inside Arraylist is called elementData -->
    <field name="elementData">
        <value>One</value>
        <value>Two</value>
        <value>Three</value>
    </field>
</object>
Run Code Online (Sandbox Code Playgroud)

与XML一般来说,它有点膨胀,占用138个字节(没有空格,即).JSON中也是如此

{
    "java.util.ArrayList": {
        "elementData": [
            "one",
            "two",
            "three"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

这是75字节所以已经比Java的序列化略小.使用这些基于文本的格式,显然必须有一种方法可以将基本数据表示为文本,数字或两者的任意组合.

那么回顾一下,序列化如何在字节/位级别上工作,何时应该使用以及何时不应该使用序列化以及序列化的真正好处除了它是Java的标准之外?

java serialization

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

asp.net mvc - 视图中的命名空间

我在后面的视图代码中使用命名空间,但我无法在aspx中调用此名称空间的任何类.

在codebehind中:

using MVCTest.Controller;
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc

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

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

访问iPhone/iPod touch上的日历条目

是否可以访问iPhone/iPod touch上的日历条目,即阅读,创建,更改,删除约会?

我搜索了iPhone SDK文档但没有找到任何内容.也许我错过了什么.

iphone cocoa-touch

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

STL中是否有dereference_iterator?

我想知道在STL中是否有一个迭代器在返回之前取消引用指向的对象.在操作聚合指针的容器时,这可能非常有用.以下是我希望能够做到的一个例子:

#include <vector>
#include <iterator>
#include <algorithm>

using namespace std;

int main()
{
  vector<int*> vec;

  int i = 1;
  int j = 2;
  int k = 3;

  vec.push_back(&i);
  vec.push_back(&j);
  vec.push_back(&k);

  copy(deref_iterator(vec.begin()), 
       deref_iterator(vec.end()), 
       ostream_iterator<int>(cout, " ")); // prints "1 2 3"

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ iterator stl

15
推荐指数
1
解决办法
1398
查看次数