小编San*_*u C的帖子

无法理解python生成器

我是python中的新生成器.我有一个简单的代码,我正在玩,但我无法理解我从中得到的输出.这是我的代码:

def do_gen():
    for i in range(3):
        yield i

def incr_gen(y):
    return y + 1

def print_gen(x):
    for i in x:
        print i

x = do_gen()
y = (incr_gen(i) for i in x)
print_gen(x)
print_gen(y)
Run Code Online (Sandbox Code Playgroud)

我希望我的输出是这样的:

0  1  2 
1  2  3
Run Code Online (Sandbox Code Playgroud)

但我只看到:0 1 2

我不明白这个输出.谁能帮助我理解我缺乏理解?提前致谢.

python generator

17
推荐指数
1
解决办法
629
查看次数

使用xlsxwriter编写.xlsx文件时出现UnicodeDecodeError错误

我试图从我的python应用程序写一个.xlsx文件大约1000行.数据基本上是整数和字符串的组合.运行wbook.close()命令时出现间歇性错误.错误如下:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 15: 
                     ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我的数据在unicode中没有任何内容.我想知道为什么解码器正在存在.有人注意到这个问题吗?

python xlsxwriter

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

Redshift:定义复合主键

我有一个表,我想在redshift中定义一个具有两列的复合主键.我在创建表语法方面遇到了一些麻烦.这是我想要做的:

Create table metrics  (
     id varchar(30),
     runtime timestamp,
     category varchar(30),
     location varchar(30))
primary key(id, runtime),
sortkey(runtime);

它失败了一条消息:

ERROR:  syntax error at or near "PRIMARY"

任何人都可以帮我弄清楚如何解决它?提前致谢.

sql amazon-redshift

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

使用CMake和Maven构建C++和Java代码并在jar中捆绑

我有一个使用CMake构建的遗留C++代码.它会生成一个.so文件.我需要用Java包装这个代码并构建一个包含Java代码和C++的jar用于部署.

使用CMake构建C++代码的步骤很简单:

cd /to/pkg/dir
cmake .
make
Run Code Online (Sandbox Code Playgroud)

.so文件在build /目录下生成.如果我将整个项目转换为maven,我将不得不修改目录结构(这是一个博客,解释了如何工作http://blog.bigpixel.ro/2012/07/building-cc-applications-with- maven /).但是,我不想这样做.可以选择从maven调用上面显示的前两行来构建.so文件,然后将它包含在最终的jar中吗?提前致谢.

c++ java maven

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

检查字符串是否包含python中的日期或时间戳

我需要想出一个函数,它将接受一个字符串,它将执行以下操作:

  1. 检查它是否是 UTC 格式的时间戳(例如,它的格式是否为2014-05-10T12:30:00)。
  2. 如果是上述格式,请将 'T' 替换为空格并返回字符串。
  3. 如果它不是时间戳,只需返回字符串。

在 python 中完成此操作的最佳方法是什么?我以为我可以使用 datetime 模块。但这可以使用 re 模块来完成吗?

python datetime

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

如何在 hive (AWS Data Pipeline) 中使用 scriptVariables

我们可以使用以下构造将脚本变量传递到 AWS 数据管道 hiveactivity 中:

“脚本变量”:[
    "param1=value1",
    “参数 2=值 2”
  ]

我们如何在 hive 脚本中访问这些变量?我一直在尝试在 select 语句中使用它们,但没有成功:

选择 ${hiveconf:param1}, dummytable.col1,...
从 dummytable where dummytable.id = 1;

我对蜂巢的了解有限。对此的任何帮助将不胜感激。谢谢。

hive amazon-web-services amazon-data-pipeline

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

在python中对字符串列表进行排序,使得特定字符串(如果存在)首先出现

我是python的新手,希望有人可以帮我解决这个问题.我需要对字符串列表进行排序:

s = ['status', 'value', 'place', 'tag']
Run Code Online (Sandbox Code Playgroud)

我需要排序,排序列表如下所示:

s_sorted = ['tag', 'place', 'status', 'value']
Run Code Online (Sandbox Code Playgroud)

换句话说,特定的字符串'tag'必须始终在前面,其余的字符串将被排序.我试图想出一个可以让我这样做的比较器.但到目前为止我还没能做到这一点.如果有人有解决这样的问题的经验,如果你能分享一些想法,我将不胜感激.

python sorting list

4
推荐指数
2
解决办法
2410
查看次数

毫秒持续时间到ISO 8601精确字符串格式的Java持续时间转换

我想将持续时间(以毫秒为单位)转换为ISO 8601精确间隔格式:https : //en.wikipedia.org/wiki/ISO_8601#Durations

我可以找到用于转换的代码示例。从毫秒到适当的字符串格式,都有标准的Java库支持吗?

java

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

Python聚合在一个生成器上

我有一个生成器,在每次迭代中返回一个列表.列表的每个元素可以是0或1.我想计算返回的元素总数(包括0和1)以及返回的总数.我尝试使用reduce函数实现这个:

t = reduce( (lambda x,y:(y[0]+1,y[1]+x)), gen_fn(), (0,0))

上面的gen_fn()是返回每个yield语句中列表的一部分的生成器.我想通过使用元组(0,0)初始化来实现它.鉴于从生成器返回的元素如下:

[0, 1, 1, 0, 1]

我对t的预期输出是(5,3).但我的代码失败了这个错误消息:

TypeError: unsupported operand type(s) for +: 'int' and 'tuple'

任何人都可以帮我识别问题吗?我缺乏reduce和lambda函数的经验使我无法弄清楚我做错了什么.提前致谢.

python lambda generator

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

如何将函数作为参数传递给Java中的Callable

我有一个函数,使一些服务调用数据库,我不想改变.但是如果有多个请求需要运行此函数,我想在线程池中运行它们.所以,我试图找出如何在Callable类中包装此函数.这是函数的签名:

void invokeCommand(string table, int ctype)

函数invokeCommand不返回任何值,但可以抛出异常.我想使用以下构造不是一个选项,因为我无法将参数和invokeCommand函数传递给它.

Callable<Void> myCommand = new Callable<Void>() {
    public Void call() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我了解到另一种方法是定义一个命名类而不是匿名类,并通过构造函数传递参数(string,int).有没有办法我也可以传递函数invokeCommand?推荐的方法是什么?提前致谢.

java callable

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

Python编码风格

我有两个代码片段,基本上做同样的事情.以下是两个样本:

retval = count or num_element > 0
Run Code Online (Sandbox Code Playgroud)

if count or num_element > 0 :
    retval = True
else:
    retval = False
Run Code Online (Sandbox Code Playgroud)

第一种选择是否优先于第二种选择?我知道人们有自己的选择.但我很想知道是否有任何表现或其他影响.我觉得第二种方式更具可读性.

python

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

如何将元素列表转换为0或1的列表

我有一个列表,其元素是一个json对象或None.将它转换为0和1的列表最优雅的方法是什么.例如,这是我的输入:

mylist = [j1, j2, None, j3, None]

j1,j2,j3是json对象.预期的产出是

output_list = [1, 1, 0, 1, 0]

我可以使用for循环后跟if语句来实现它.有没有办法做到更优雅/ pythonic?

python

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