小编Mar*_*eed的帖子

Python,计算列表差异

在Python中,计算两个列表之间差异的最佳方法是什么?

A = [1,2,3,4]
B = [2,5]

A - B = [1,3,4]
B - A = [5]
Run Code Online (Sandbox Code Playgroud)

python list

179
推荐指数
10
解决办法
21万
查看次数

如何使回声解释反斜杠转义而不打印尾随换行符?

我想echo在bash中使用打印出一串字符后跟一个回车符.我查看了手册页,发现echo -eecho解释反斜杠转义字符.使用它,我可以说echo -e 'hello\r',它会像这样打印

$>echo -e 'hello\r'
 hello
$>
Run Code Online (Sandbox Code Playgroud)

所以看起来它正确地处理了回车.我还发现echo -n在手册页中将停止echo插入换行符,当我这样做时它看起来像是有效的

$>echo -n 'hello\r'
 hello\r$>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是在这两个相结合-e-n.我试过每个echo -e -n 'hello\r',echo -n -e 'hello\r',echo -en 'hello\r',和echo -ne 'hello\r'没有东西印像这样:

$>echo -ne 'hello\r'
$>
Run Code Online (Sandbox Code Playgroud)

有没有我在这里缺少的东西,或者这些-e-n选项不能一起使用?

bash echo

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

在JavaScript中绑定/应用构造函数

我正在寻找使用任意数量的参数调用Javascript构造函数的解决方案,并找到了一些好的SO帖子,这让我相信这三个调用应该是一样的.但是,至少在rhino和node.js中,它们不会:

1. f = Date.bind(Date, 2000,0,1)
2. g = Date.bind.call(Date, 2000, 0, 1)
3. h = Date.bind.apply(Date, [2000, 0, 1])
Run Code Online (Sandbox Code Playgroud)

第一个有所需的结果:

print(new f()) //=> Sat Jan 01 2000 00:00:00 GMT-0500 (EST)
Run Code Online (Sandbox Code Playgroud)

但其他两个不:

print(new g()) //=> Thu Feb 01 1900 00:00:00 GMT-0500 (EST)
print(new h()) //=> Wed Jun 01 1904 00:00:00 GMT-0400 (EST)
Run Code Online (Sandbox Code Playgroud)

所以有些东西在某处乱了.关于什么的想法?难道仅仅是一个坏主意,东西混合像apply,bind和/或callnew

javascript constructor variadic-functions

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

macOS上的系统llvm-config在哪里?

如果我没有弄错的话,作为XCode的一部分安装的编译器等使用llvm.但我找不到llvm-config二进制文件来生成适当的标志,用于命令行编译到llvm目标.macOS上的这种东西在哪里?

我知道我可以通过MacPorts或Homebrew安装一个新的llvm,但我不想复制已经存在的内容; 我只想要一种方法来获得系统配置.

macos xcode llvm

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

使用Aruba和Bundler测试基于Ruby的CLI

我有一个通过Bundler运行的RSpec套件,它使用Aruba测试了许多不同的命令行应用程序.它运行正常...只要被测试的命令本身不是使用Bundler在Ruby中编写的.但我无法弄清楚如何防止RSpec套件的bundler配置干扰自己使用Bundler的命令的执行 - 至少,不是没有极端措施.

我已经试过各种排列unset_bundler_env_varswith_clean_env,都无济于事.这是我认为可行的技术示例:

describe 'my ruby app' do 
  before :each { unset_bundler_env_vars }
  it 'should work' do
    Bundler.with_clean_env { run_simple ruby_command_name }
  end
end
Run Code Online (Sandbox Code Playgroud)

我也试过unset_bundler_env_vars没有with_clean_env,反之亦然,以防他们互相干扰.没有骰子.

我得到它的唯一方法是手动按摩Aruba的环境副本,如下所示:

before :all do
  aruba.environment.tap do |env|
    if env.include? 'BUNDLE_ORIG_PATH' then
      env['PATH'] = env['BUNDLE_ORIG_PATH']
      %w(BUNDLE_BIN_PATH BUNDLE_GEMFILE BUNDLE_ORIG_PATH GEM_HOME RBENV_DIR
         RBENV_HOOK_PATH RUBYLIB RUBYOPT).each do |key|
        env.delete key
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

肯定有更好的办法.测试套件和被测试的命令都不应该知道或关心对方编写的语言.我使用Aruba和Bundler的测试代码不需要知道如何bundle exec影响过程环境的细节.

那么我做错了什么?我该怎么做?

ruby rspec bundler aruba

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

如何将超算子与不是真正标量的标量一起使用?

我想对集合进行散列。好吧,SetHashes,因为它们需要是可变的。

事实上,我想用同一个 SetHash 的多个相同副本来初始化我的 Hash。

我有一个包含新哈希键的数组: @keys

我已经在标量变量中初始化了我的 SetHash: $set

我正在寻找一种干净的方法来初始化哈希。

这有效:

my %hash = ({ $_ => $set.clone } for @keys);
Run Code Online (Sandbox Code Playgroud)

(括号是优先需要的;没有它们,赋值%hashfor循环体的一部分。我可以将其更改为非后缀 for 循环或进行其他几个小更改中的任何一个,以稍微获得相同的结果不同的方式,但这不是我在这里感兴趣的。)

相反,我有点希望我可以使用 Raku 的一个漂亮的超级操作员,也许是这样的:

my %hash = @keys »=>» $set;
Run Code Online (Sandbox Code Playgroud)

$set一个简单的字符串或数字,但一个 SetHash?

Array >>=>>> SetHash can never work reliably: order of keys in SetHash is indeterminate
Run Code Online (Sandbox Code Playgroud)

很高兴知道,但我不希望它以任何顺序超过 RHS 。这就是我使用 hyperop 的右指向版本的原因:所以它会根据需要复制 RHS 以将其与 LHS 匹配。在这种表达中,有什么办法可以说“哟,乐,把它当作一个标量。不,真的。”?

我尝试了一个显式 Scalar 包装器(这会使值更难获得,但这是一个实验):

my %map = @keys »=>» $($set,)
Run Code Online (Sandbox Code Playgroud)

这让我收到了这条消息:

Lists on either …
Run Code Online (Sandbox Code Playgroud)

rakudo raku

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

如何匹配javascript正则表达式中的平衡分隔符?

我原以为这个问题是不可能的; 据我所知,Javascript的正则表达式风格没有递归插值,也没有漂亮的.NET平衡组功能.然而就像regex.alf.nu上的问题12 那样:匹配平衡对<>.除非在集合中有其他一些模式我没有得到.

那么......这可能吗?如果是这样,怎么样?

笔记:

  1. 我知道这对于真正的正则表达式来说是不可能的,但基于挑战,似乎它必须有可能在Javascript的风格(至少不规则,有反向引用).我只是不知道任何可以让他们这样做的功能.

  2. 没有其他代码 - 表单允许输入单个正则表达式,该表达式根据页面上的测试字符串进行评估.我想,我可以尝试破解页面以打破正则表达式并进入原始JS,但这似乎并不符合这一挑战的精神.

大卫问,这里是测试字符串.较长的已被截断了字符数,但问题的题目是"平衡",并且是完整的那些肯定是支持的"匹配"列有平衡对的假说<>,而"不是"一栏没有.

Match all of these…

<<<<<>><<>>><<... [62 chars]
<<<<<>><>><<><... [110 chars]
<<<<<>><>><>><... [102 chars]
<<<<<>><>>>><<... [88 chars]
<<<<<>>><<<>><... [58 chars]
<<<<<>>><<><>>... [152 chars]
<<<<<>>><<>><<... [42 chars]
<<<<<>>><>><<<>>>><<>>
<<<<<>>>><<<<>... [102 chars]
<<<<<>>>><<<><... [30 chars]
<<<<<>>>><><<<... [66 chars]
<<<<<>>>><><<<... [124 chars]
<<<<<>>>><>><<>>
<<<<><<>>><<<>... [34 chars]
<<<<>><<<>>>><... [92 chars]
<<<<>>><<<<>><>><<<>>>>>
<<<<>>><<<><<>>><><<>>>><<>>
<<<<>>><<><<<>... [84 chars]
<<<<>>>><<<><<... [52 chars]
<<<><<<>>>><<<... [50 chars]
<<<><<><>>>>
<<<><>><<<>>>>
<<<>><<<><<>>>... …
Run Code Online (Sandbox Code Playgroud)

javascript regex recursion

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

jQuery中列的总和

以下代码无效.正如你在jsfiddle上看到的那样,我需要按列加总.出了什么问题?

HTML

<table id="sum_table" width="300" border="1">
    <tr>
        <td>Apple</td>
        <td>Orange</td>
        <td>Watermelon</td>
    </tr>
    <tr>
        <td class="rowDataSd">1</td>
        <td class="rowDataSd">2</td>
        <td class="rowDataSd">3</td>
    </tr>
    <tr>
        <td class="rowDataSd">1</td>
        <td class="rowDataSd">2</td>
        <td class="rowDataSd">3</td>
    </tr>
    <tr>
        <td class="rowDataSd">1</td>
        <td class="rowDataSd">2</td>
        <td class="rowDataSd">3</td>
    </tr>
    <tr class="totalColumn">
        <td class="totalCol">Total:</td>
        <td class="totalCol">Total:</td>
        <td class="totalCol">Total:</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

$(document).ready(function(){


   $(".rowDataSd").each(function() {
      newSum.call(this);
    });

});


function newSum() {
    var $table = $(this).closest('table');
    var total = 0;

    $(this).attr('class').match(/(\d+)/)[1];

$table.find('tr:not(.totalColumn) .rowDataSd').each(function()  {
        total += parseInt($(this).html());

});

$table.find('.totalColumn td:nth-child('')').html(total);
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

不在焦点时响应键盘?(C#,Vista)

我正在尝试编写一个应用程序,只要按下Shift键就会响应,无论当前哪个应用程序都有焦点.

我尝试使用SetWindowsHookEx()和使用GetKeyboardState(),但这两个只在应用程序的窗口具有焦点时才起作用.我需要它在全球范围内工作.

我该怎么做呢?

c# windows windows-vista

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

文件句柄数组

我想根据索引选择要放入哪个文件的数据.但是,我似乎陷入了以下困境.

我使用文件句柄数组创建了文件:

my @file_h;
my $file;
foreach $file (0..11)
{
    $file_h[$file]= new IT::File ">seq.$file.fastq";
}

$file= index;
print $file_h[$file] "$record_r1[0]$record_r1[1]$record_r1[2]$record_r1[3]\n";
Run Code Online (Sandbox Code Playgroud)

但是,我在最后一行出于某种原因出错了.帮助任何人......?

perl

5
推荐指数
3
解决办法
4006
查看次数