小编bel*_*daz的帖子

找到两个嵌套列表的交集?

我知道如何获得两个平面列表的交集:

b1 = [1,2,3,4,5,9,11,15]
b2 = [4,5,6,7,8]
b3 = [val for val in b1 if val in b2]
Run Code Online (Sandbox Code Playgroud)

要么

def intersect(a, b):
    return list(set(a) & set(b))

print intersect(b1, b2)
Run Code Online (Sandbox Code Playgroud)

但是当我必须找到嵌套列表的交集时,我的问题就开始了:

c1 = [1, 6, 7, 10, 13, 28, 32, 41, 58, 63]
c2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
Run Code Online (Sandbox Code Playgroud)

最后我想收到:

c3 = [[13,32],[7,13,28],[1,6]]
Run Code Online (Sandbox Code Playgroud)

你能帮我个忙吗?

有关

python intersection list

468
推荐指数
10
解决办法
60万
查看次数

Raphael JS和Text定位?

我试图通过提供x,y坐标来在SVG画布中定位文本

var t = paper.text(50, 50, "Raphaël\nkicks\nbutt!");
Run Code Online (Sandbox Code Playgroud)

但不会像所有其他对象一样定位文本......

x,y坐标指定对象的中心!不是"左上角"像素!


我希望沿着一条线"左对齐"文本,与标准HTML相同.

非常感谢帮助.

javascript svg raphael

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

如何从我的家庭网络外部访问我的SSH Linux服务器

所以我几天来一直在网上搜索,试图解决这个问题并且无法弄明白.

我知道这将是一个简单的.

所以我最近拿了一个旧桌面并加载了ubuntu服务器12.04.我在这个项目中的目标是创建一个区域来托管几个git存储库,也许是一个简单的网页.

我已经安装了SSH和Apache2软件包并尝试配置它们.现在我可以使用ssh greg@0.0.0.0.0从我的笔记本电脑登录,但仅限于我在同一网络上.一旦我离开家,我得到一个超时错误.

所以我现在想要了解的两件事.

  1. 如何配置SSH以允许我从网络外部访问服务器.
  2. 在服务器上获取我的主机名,因此登录将是greg @ hostname而不是greg@0.0.0

    (我已经完成了sudo主机名并更改了etc/hostname文件而没有结果)

多谢你们.

linux ssh ubuntu

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

为postgresql存储过程设置隔离级别

希望这是一个简单的问题,但我还没有找到一个像样的答案.我可靠地告知PostgreSQL(特别是版本9.0.4)中的存储过程(用户定义的DB函数)本质上是事务性的,因为它们是通过SELECT语句调用的,而SELECT语句本身就是一个事务.那么如何选择存储过程的隔离级别呢?我相信在其他DBMS中,所需的事务块将被包装在START TRANSACTION块中,其中所需的隔离级别是可选参数.

作为一个具体的例子,说我想这样做:

CREATE FUNCTION add_new_row(rowtext TEXT)
RETURNS VOID AS 
$$
BEGIN
        INSERT INTO data_table VALUES (rowtext);
        UPDATE row_counts_table SET count=count+1;
END;
$$  
LANGUAGE plpgsql
SECURITY DEFINER;
Run Code Online (Sandbox Code Playgroud)

并且想象一下,我想确保此函数始终作为可序列化事务执行(是的,是的,PostgreSQL SERIALIZABLE不是可正确序列化的,但这不是重点).我不想要求它被称为

START TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SELECT add_new_row('foo');
COMMIT;
Run Code Online (Sandbox Code Playgroud)

那么如何将所需的隔离级别下移到函数中呢?我相信我不能像BEGIN报告手册那样将隔离级别放在声明中

重要的是不要混淆使用BEGIN/END将PL/pgSQL中的语句分组与用于事务控制的类似命名的SQL命令.PL/pgSQL的BEGIN/END仅用于分组; 他们不会开始或结束交易.函数和触发器过程总是在一个由外层查询建立起来的事务中执行 - 他们不能开始或者提交该事务,因为不会有什么背景让他们在执行.

对我来说最明显的方法是SET TRANSACTION在函数定义中的某处使用,例如:

CREATE FUNCTION add_new_row(rowtext TEXT)
RETURNS VOID AS 
$$
BEGIN
        SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
        INSERT INTO data_table VALUES (rowtext);
        UPDATE row_counts_table SET count=count+1;
END;
$$  
LANGUAGE plpgsql
SECURITY DEFINER;
Run Code Online (Sandbox Code Playgroud)

虽然这是可以接受的,但我不能完全依赖它来工作.该 …

postgresql stored-procedures isolation-level

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

如何使用pdo的预备语句来命令和限制条款?

我想使用一个准备好的语句,其中传入的参数用于ORDER BYLIMIT子句,如下所示:

$sql = 'SELECT * FROM table ORDER BY :sort :dir LIMIT :start, :results';
$stmt = $dbh->prepare($sql);
$stmt->execute(array(
     'sort'  => $_GET['sort'], 
     'dir'  => $_GET['dir'], 
     'start'  => $_GET['start'],
     'results' => $_GET['results'],
     )
    );
Run Code Online (Sandbox Code Playgroud)

$stmt->fetchAll(PDO::FETCH_ASSOC);什么都不回报.

有人能指出我在做什么是错的吗?可以吗?如果没有,我应该参考哪些条款的完整列表可以使用参数?

php pdo prepared-statement

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

如何在没有管理员权限的情况下安装TortoiseGit?

我在具有受限权限的虚拟机上工作.我可以在安装过程中安装任何不需要管理员权限的程序.但安装TortoiseGit需要权限,因为它与资源管理器集成.是否可以在没有管理员权限的情况下安装TortoiseGit?可能没有资源管理器集成.

我的系统是Windows 7 x64,TortoiseGit版本是1.8.3.0

git tortoisegit

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

从C++ 11中的std :: exception派生时的异常规范

我有一个异常类如下:

#include <exception>

struct InvalidPathException : public std::exception
{
   explicit InvalidPathException() {}
   const char* what() const;
};

const char*
InvalidPathException::what() const {
    return "Path is not valid";
}
Run Code Online (Sandbox Code Playgroud)

使用-Wall -std = c ++ 0x在GCC 4.4下编译时

错误:对'virtual const char*的错误抛出说明符*InvalidPathException :: what()const'

错误:覆盖'virtual const char*std :: exception :: what()const throw()'

完全正确,也因为我重写std::exceptionwhat()是确实有一个方法throw()异常说明.但是,通常会通知我们,我们不应该使用异常说明符.据我所知,它们在C++ 11弃用,但显然还没有在GCC中使用-std = c ++ 0x.

所以我现在对最好的方法感兴趣.在我正在开发的代码中,我确实关心性能,所以担心经常提到的开销throw(),但实际上这个开销是如此严重?我是否正确地认为我只会在what()实际调用时遇到它,这只会在抛出这样的异常之后(同样对于从std :: exception继承的其他方法都有throw()说明符)?

或者,有没有办法解决GCC给出的这个错误?

c++ gcc exception-specification c++11

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

如果内联函数使用fprintf,为什么需要声明为static?

我正在重构一些C代码并对因子部分进行单元测试(使用Google Test).在循环中多次使用了一个片段,因此为了将其暴露给测试,我将其作为inline头文件中的函数进行了考虑,该头文件demo.h还包括一些其他非inline函数的声明.简化版如下:

#ifndef DEMO_H_
#define DEMO_H_
#ifdef __cplusplus
extern "C" {
#endif
inline void print_line(FILE* dest, const double * data, int length) {
    for (int s = 0; s < length; s++)
        fprintf(dest, "%lf ", data[s]);
    fprintf(dest, "\n");
}
#ifdef __cplusplus
}
#endif
#endif /* MK_H_ */
Run Code Online (Sandbox Code Playgroud)

我的测试代码

#include "gtest/gtest.h"
#include "demo.h"
#include <memory>
#include <array>
#include <fstream>

TEST (demo, print_line) {
    std::array<double,4> test_data = {0.1, 1.4, -0.05, 3.612};

    const char* testfile = "print_line_test.txt"; …
Run Code Online (Sandbox Code Playgroud)

c c++ static inline

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

私有继承的typedef对嵌套类的可见性

在下面的例子中(道歉为长度)我试图隔离一些在私有继承自另一个类的类中使用嵌套类时遇到的意外行为.我经常看到这样的陈述:与未使用的类相比,嵌套类没有什么特别之处,但是在这个例子中可以看到嵌套类(至少根据GCC 4.4)可以看到一个嵌套类的公共类型定义由结束类私有继承的类.

我很欣赏typdef与成员数据不一样,但我发现这种行为令人惊讶,我想其他许多人也会这样.所以我的问题是双重的:

  1. 这是标准行为吗?(一个很好的解释为什么会非常有帮助)
  2. 人们可以期望它适用于大多数现代编译器(即,它有多便携)?

#include <iostream>

class Base {
  typedef int priv_t;
  priv_t priv;
public:
  typedef int pub_t;
  pub_t pub;
  Base() : priv(0), pub(1) {}
};

class PubDerived : public Base {
public:
  // Not allowed since Base::priv is private
  // void foo() {std::cout << priv << "\n";}

  class Nested {
    // Not allowed since Nested has no access to PubDerived member data
    // void foo() {std::cout << pub << "\n";}

    // Not allowed since typedef Base::priv_t is private …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance typedef nested-class

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

Windows Pycharm,远程环境不显示图片

我在我的Windows 10机器笔记本电脑上安装了PyCharm Professional 2017.3.2,并将其配置为使用运行conda环境的Vagrant Ubuntu 16.04服务器(Virtualbox)VM作为远程解释器.我能够使用这个环境执行Python脚本,但数字不会显示.例如,尽管命令没有呈现图形,但https://www.jetbrains.com/help/pycharm/scientific-mode-tutorial.html中的示例返回退出代码0 plt.show().没有报告错误.

给出的后端matplotlib.get_backend()module://backend_interagg.我已经看到提到DISPLAY在VM上设置或安装Xorg,但这似乎是在后端使用QT时来自较旧的帖子.任何人都可以建议如何使用最近的设置显示情节?

matplotlib pycharm vagrant-windows

6
推荐指数
0
解决办法
550
查看次数