小编Rub*_*ens的帖子

压缩"n"时间对象成员调用

是否有任何非显式for方法可以n在对象上调用成员时间?

我正在考虑一些map/reduce/lambda方法,但我想不出办法做到这一点 - 如果有可能的话.

只是添加上下文,我正在使用BeautifulSoup,我正在从html表中提取一些元素; 我提取了一些元素,然后是最后一个元素.

因为我有:

# First value
print value.text

# Second value
value = value.nextSibling
print value.text

# Ninth value
for i in xrange(1, 7):
    value = value.nextSibling
print value.text
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何lambda方法 - 或其他 - 允许我这样做:

# Ninth value
((value = value.nextSibling) for i in xrange(1, 7))
print value.text
Run Code Online (Sandbox Code Playgroud)

PS:不,这种for方法没有任何问题,除了我真的很喜欢单线解决方案,这在我的代码中非常适合.

python lambda for-loop beautifulsoup

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

C++ std :: unordered_set SIGFPE异常

我写了一个程序,我很开心我已经运行了几十次 - 我甚至写下了多次执行的结果 - 现在它不起作用.

你可能会认为我说风筝很高,或者我可能只是改变了一些线条,但我真的不记得在程序上做了任何改动.

根据输入,问题是a SIGFPE,在程序的不同执行中会增加.虽然在插入值时std::unordered_set<Point<T> *>引发了信号但是会发生.

这是我执行此类插入的代码片段:

std::vector<Point<T> *> _point, _centroid;
std::vector<std::unordered_set<Point<T> *> > _cluster;

// Main procedure -- pseudocode
for (point in _point) {
    cluster_id = centroid_with_min_distance(point, _centroid);
    has_changed = _change_cluster(point, cluster_id);
}

// Changes from one "point->_cluster's unordered_set" to "c's unordered_set"
bool _change_cluster(Point<T> *point, const unsigned int& c) {

    if ((point->_cluster == c) &&
        (_cluster[c].find(point) != _cluster[c].end())) {
        return false;
    }

    _cluster[point->_cluster].erase(point);
    _cluster[c].insert(point); // Insertion that raises …
Run Code Online (Sandbox Code Playgroud)

c++ stl sigfpe unordered-set

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

在没有numpy(python)的列表上进行元素操作的正确样式

我想通过元素,而无需使用numpy的列表元素上进行操作,例如,我想add([1,2,3], [2,3,4]) = [3,5,7]mult([1,1,1],[9,9,9]) = [9,9,9],但我不知道它在做的方式是,它认为"正确"的风格.

我提出的两个解决方案是

def add(list1,list2):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(list1[x]+list2[x])
    return list3

def mult(list1, list2):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(list1[x]*list2[x])
    return list3

def div(list1, list2):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(list1[x]/list2[x])
    return list3

def sub(list1, list2):
    list3 = []
    for x in xrange(0,len(list1)):
        list3.append(list1[x]-list2[x])
    return list3
Run Code Online (Sandbox Code Playgroud)

每个操作员都有一个单独的功能

def add(a,b)
    return a+b
def mult(a,b)
    return a*b
def div(a,b)
    return a/b
def sub(a,b)
    return a-b …
Run Code Online (Sandbox Code Playgroud)

python functional-programming coding-style list higher-order-functions

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

在Bourne Shell中调用函数

是否可以从Unix控制台调用函数(在shell脚本中定义)?我有一个像这样的功能

add ()
{
 a=$1
 b=$2
 c=`expr $a + $b`
}
Run Code Online (Sandbox Code Playgroud)

这是在脚本中定义的"my_script.sh".如何从命令提示符调用此函数?

unix linux bash shell sh

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

返回负和正浮点数的和

我正在尝试创建一个函数,它接受一个浮点列表并返回两个数字的列表,它等于所有正浮点数和所有负浮点数的总和.例如:

statement([30.95, -15.67, 45.56, -55.00, 43.78])
returns [-70.67, 120.29]
Run Code Online (Sandbox Code Playgroud)

这是迄今为止能够做到的:

res= []
for i in range(len(l)-1):
    for j in range(i,len(l)):
        if l[i]>=l[i+1]:
            res = 
return res
Run Code Online (Sandbox Code Playgroud)

但我有点卡住了.任何人都可以帮我理解这一点好一点吗?

python floating-point list python-3.x

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

构造函数调用继承的类

请考虑以下代码:

class A {
public:
    int a;
};

class B : public A {
public:
    B() { std::cout << "B[" << a << "]" << std::endl; }
};

class C : public B {
public:
    C() { std::cout << "C[" << a << "]" << std::endl; }
};

int main(int argc, char *argv[]) {

    B();
    std::cout << std::endl;
    C();

}
Run Code Online (Sandbox Code Playgroud)

它的输出程序用g ++编译(Ubuntu/Linaro 4.6.3-1ubuntu5)4.6.3:

B[0]

B[-2097962768]
C[-2097962768]
Run Code Online (Sandbox Code Playgroud)

我发现获得第二个调用的唯一方法C()- 初始化其值是向构造函数添加显式调用,如:

class B : public A {
public:
    B() : A() …
Run Code Online (Sandbox Code Playgroud)

c++ constructor default initialization default-constructor

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

选择字符串的第一部分

如何从字符串中提取子字符串.例如,从字符串:

'/home/auto/gift/surprise'
Run Code Online (Sandbox Code Playgroud)

只采取:

'/home/auto/'
Run Code Online (Sandbox Code Playgroud)

请注意,'/home/auto/gift/surprise'可能会有所不同,即,而不是有4个目录级别,它可能会转到6或8,但我只对前2个文件夹感兴趣.

这是我到目前为止尝试过的,没有成功:

$ pwd
'/home/auto/gift/surprise' 
$ pwd | sed 's,^\(.*/\)\?\([^/]*\),\1,'
'/home/auto/gift/'
Run Code Online (Sandbox Code Playgroud)

unix linux bash awk sed

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

如何从给定的出现中删除匹配模式

我正在尝试删除匹配模式,从第二次出现开始,使用sedawk.输入文件包含以下信息:

abc
def
abc
ghi
jkl
abc
xyz
abc
Run Code Online (Sandbox Code Playgroud)

我想删除abc第二个实例中的模式.输出应如下:

abc
def
ghi
jkl
xyz
Run Code Online (Sandbox Code Playgroud)

unix linux bash awk sed

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

Python中的Prolog单例变量

我正在python中编写一些脚本,我来到这里:

line = "a b c d e f g"
a, b, c, d, e, f, g = line.split()
Run Code Online (Sandbox Code Playgroud)

我很清楚这些是在实现过程中做出的决定,但不应该(或确实)python提供类似的东西:

_, _, var_needed, _, _, another_var_needed, _ = line.split()
Run Code Online (Sandbox Code Playgroud)

以及Prolog确实提供的,以排除着名的singleton variables.

我不确定,但不会避免不必要的分配吗?或者创建对split调用结果的引用不会计入开销?

编辑:

对不起,我的观点是:在Prolog中,就我而言,表达方式如下:

test(L, N) :-
    test(L, 0, N).
test([], N, N).
test([_|T], M, N) :-
    V is M + 1,
    test(T, V, N).
Run Code Online (Sandbox Code Playgroud)

表示的变量_是不可访问的,因为我认为[_|T]甚至没有创建对列表中存在的值的引用.

但是,在Python中,如果我使用_,我可以使用分配给的最后一个值_,而且,我确实假设为每个变量进行赋值_- 这可能被视为开销.

我的问题是,是否应该(或者如果有)语法来避免这种不必要的归因.

python unused-variables

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

检查语法歧义

以下是我试图查看是否有歧义的一段语法的摘录。

Y->b
Y->Z
Z->bW
W->d
W->?
Run Code Online (Sandbox Code Playgroud)

当我计算第一组语法时,我偶然发现了 Y 中第一个的不规则性。

First(Y) = {b,First(Z)}
First of Z = b so I have the set First(Y)={b,b}.
Run Code Online (Sandbox Code Playgroud)

我想知道的是,这足以证明给出这个证据的语法是否有歧义。或者应该设置为First(Y) = {b}.

compiler-construction grammar parsing

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