小编yeg*_*gle的帖子

如何阻止 zsh 在命令行中扩展 *(星号)?

我最近切换到zsh. 当我使用 时bash,我曾经将echo 2*3 |bc其用作功能强大且方便的计算器,但在zsh命令的第一部分中会出现错误消息:

$ echo 2*3
zsh: no matches found: 2*3
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过在字符串中添加引号来避免扩展,2*3但是是否可以从bash(不在命令参数中扩展星号)中引入此功能?

更新:

bc <<< 2*3在我发现不会触发扩展的意义上,很奇怪:-(

zsh

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

迭代生成器时计算总数的正确方法是什么?

我总是被告知,enumerate当您需要计算数字并同时迭代时,可以使用内置函数.

例如,这是Python中常见的习惯用法(函数gen返回生成器):

for index, item in enumerate(gen()):
    # Do something with item

# get the numbers consumed from generator
print("% number of items processed" % (index+1,))
Run Code Online (Sandbox Code Playgroud)

但如果发电机什么也没有返回?例如enumerate(range(0)),index变量将是未定义的.

我们可以index在for循环之前定义变量,但是还有更多我不知道的pythonic解决方案吗?

python

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

如何在Python中提供不同的并发方法?

在Python中有不同的并发方式,下面是一个简单的列表:

  • 基于流程:process.Popen,multiprocessing.Process,老式的os.system,os.popen,os.exe*
  • 基于线程的: threading.Thread
  • 微线为主: greenlet

我知道基于线程的并发和基于进程的并发之间的区别,我知道一些(但不是太多)关于GILCPython线程支持的影响.

对于想要实现某种级别的并发性的初学者,如何在它们之间进行选择?或者,它们之间的一般区别是什么?有没有更多的方法在Python中进行并发?

我不确定我是否在问正确的问题,请随时改进这个问题.

python concurrency

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

如何在Python中完全循环N次?

例如,我需要通过调用readline10次来读取文件.

with open("input") as input_file:
    for i in range(10):
        line = input_file.readline()
        # Process the line here
Run Code Online (Sandbox Code Playgroud)

这是一种非常常用的技术,用于range控制循环次数.唯一的缺点是:有一个未使用的i变量.

这是我从Python中获得的最好的吗?有更好的想法吗?

PS在Ruby中我们可以做到:

3.times do
  puts "This will be printed 3 times"
end
Run Code Online (Sandbox Code Playgroud)

这是优雅和非常清楚地表达意图.

python loops

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

如何理解scikit-learn中DecisionTreeClassifier的输出?

我正在学习ML并用于scikit-learn做一个基本的决策树分类.

DictVectorizer要素的值是分类的,所以我用来转换原始要素值.这是我的代码:

training_set # list of dict representing the traing set
labels # corresponding labels of the training set
vec = DictVectorizer()
vectorized = vec.fit_transform(training_set)
clf = tree.DecisionTreeClassifier()
clf.fit(vectorized.toarray(), labels)

with open("output.dot", "w") as output_file:
    tree.export_graphviz(clf, out_file=output_file)
Run Code Online (Sandbox Code Playgroud)

但我不明白输出图.它包含一个树,每个节点标记X[1] <= 0.5000或类似的东西.我所期望的是标记的节点FEATURE_1 == VALUE_1,un-vectorized信息显示在树上.

可能吗?

更新:

例如,FEATURE_1有三种可能的值A,B,C,其又被矢量成0,0,0,1,1,0分别.我想要的是图表FEATURE_1 == A而不是X[1] <= 0.5

在此输入图像描述

scikit-learn

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

SWIG:如何根据原始返回值对返回值进行类型映射?

这是一个非常简单的 C 函数:

bool GetSomething(string* result)
Run Code Online (Sandbox Code Playgroud)

调用该函数后,返回值应指明是否result保存了需要的信息,用户可以查看返回值进行相应处理。

为了在 Python 代码中使用 SWIG 这个函数,我使用默认typemaps.i文件,然后将该函数更改为

bool GetSomething(string* OUTPUT)
Run Code Online (Sandbox Code Playgroud)

这有效,但仍然很麻烦。我必须这样做才能得到我想要的结果:

success, result = GetSomething()
if success:
    # handle result
else:
    # throw exception
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要这个界面:

result = GetSomething()
if result:
    # handle result
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

swig

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

Django:将queryset传递给admin action的中间页面?

目标

我的目标是在Django管理站点中编写"导出选择为CSV"操作.

在阅读link1后,我认为将导出请求重定向到自定义视图是个好主意.

这是一个问题:如何将当前queryset页面传递给中间页面?

如果选择所有实例,则link1中的方法不起作用(请参阅link2).

我目前的解决方案

为了在中间页面中获取查询集,我有两个选择:

  1. picklequeryset.query并将其发送到与中间页?qs={picked_qs_query},然后重新创建queryset中间页.在我看来,这是一个很好的解决方案,并使中间页面具有幂等性.
  2. 将查询集保存在会话中并将其加载到中间页面中.它很简单,但使页面不够幂等.

当然,我可以忽略中间页面并在"导出选择为CSV"操作中返回CSV内容,但这真的是个好主意吗?

有什么好主意吗?

感谢您阅读此问题:-)

django

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

标签 统计

python ×3

concurrency ×1

django ×1

loops ×1

scikit-learn ×1

swig ×1

zsh ×1