标签: shift

在没有keydown事件的情况下检测CTRL和SHIFT键?

我一直想知道我是否可以在不使用keydown事件的情况下检测CTRLSHIFT按下键.

原因是我在JavaScript中创建了某种Grid Viewer,并且我实现了通过按住CTRLSHIFT键来选择不同的项目,因为它在大多数常见的查看器,编辑器等中起作用.

问题是当焦点不在页面的任何地方时.例如,我正在向书签添加页面.然后我按住CTRLSHIFT单击该项目,但它正常运行,因为没有触发keydown.

有什么方法可以省略这个吗?也许不是,但对于将其视为我自己明显的Bug的客户来说,这可能会令人困惑.

javascript ctrl shift keydown

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

如何在pandas DataFrame中移动几行?

我有以下pandas Dataframe:

import pandas as pd
data = {'one' : pd.Series([1.], index=['a']), 'two' : pd.Series([1., 2.], index=['a', 'b']), 'three' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(data)
df = df[["one", "two", "three"]]


   one  two  three
a  1.0  1.0    1.0
b  NaN  2.0    2.0
c  NaN  NaN    3.0
d  NaN  NaN    4.0
Run Code Online (Sandbox Code Playgroud)

我知道如何按列向上/向下移动元素,例如

df.two = df.two.shift(-1)

   one  two  three
a  1.0  2.0    1.0
b  NaN  NaN    2.0
c  NaN  NaN    3.0
d  NaN  NaN    4.0
Run Code Online (Sandbox Code Playgroud)

但是,我想将行中的所有元素a …

python shift dataframe pandas

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

我可以在不创建临时数组的情况下移动NSMutableArray中的对象吗?

我以为我有它,

void shiftArray(NSMutableArray *mutableArray, NSUInteger shift)
{
    for (NSUInteger i = 0; i < [mutableArray count]; i++) {
        NSUInteger newIndex = (i + shift) % [mutableArray count];
        [mutableArray exchangeObjectAtIndex:i withObjectAtIndex:newIndex];
    }
}
Run Code Online (Sandbox Code Playgroud)

当我换一个时,它将0,1,2,3,4变成0,2,3,4,1.

预期结果是4,0,1,2,3

我觉得我错过了一些明显的东西......

更新:感谢Matthieu,这就是我现在的功能.

void shiftArrayRight(NSMutableArray *mutableArray, NSUInteger shift) {
    for (NSUInteger i = shift; i > 0; i--) {
        NSObject *obj = [mutableArray lastObject];
        [mutableArray insertObject:obj atIndex:0];
        [mutableArray removeLastObject];
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道你可以制作一个通用的NSObject并在其中加入一些子类.它只是指针所以我猜它没关系,对吧?

很难打破将这些物体视为袋子的习惯,而不是指向袋子的指针.

arrays cocoa shift nsmutablearray

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

Javascript:为什么这个基准测试显示array.shift()在读取数组中的值时比array [i]快得多?

一个简单的问题.我创建了基准测试(下面的链接),至少对我来说(运行chrome 18.0.1025),每次使用array.shift()读取数组前面的值似乎比使用while/for读取值快得多循环并通过索引访问它们.

我确信这不可能是正确的,因为shift()还有很多工作要做,但与此同时我看不出我能做些什么错误来解释这个相当极端的差异?

http://jsperf.com/some-array-reading-comparisons

感谢阅读,詹姆斯

javascript arrays shift

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

带有移位运算符的(+)bareword有什么用?

我正在学习中间perl.现在我正在研究class的对象引用.在那里他们给了一个包

{
    package Barn;

    sub new { bless [], shift }

    sub add { push @{ +shift }, shift }

    sub contents { @{ +shift } }

    sub DESTROY {
        my $self = shift;
        print "$self is being destroyed...\n";
        for ( $self->contents ) {
            print ' ', $_->name, " goes homeless.\n";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个我无法理解带加号运算符的加号工作.在文中他们说,加号就像是赤字,它将被解释为软参考:@ {"shift"}

你能清楚地解释一下使用带加号算子的加号的工作吗?

perl shift

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

工会比现代编译器的转变更有效吗?

考虑一下简单的代码:

UINT64 result;
UINT32 high, low;
...
result = ((UINT64)high << 32) | (UINT64)low;
Run Code Online (Sandbox Code Playgroud)

现代编译器会将其转换为真正的高位移位,还是将其优化为简单的副本到正确的位置?

如果没有,那么使用联合似乎比大多数人似乎使用的转变更有效.但是,让编译器优化它是理想的解决方案.

我想知道当他们需要额外的一点性能时我应该如何建议.

c performance shift compiler-optimization unions

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

将@_转换为Perl中的参数传递有什么好处?

sub foo {
 $arg1 = shift @_;
 $arg2 = shift @_;
 # ...
}
Run Code Online (Sandbox Code Playgroud)

这个成语有什么好处?我只看到比较明确地有工作的缺点$_[0],$_[1]......阵列具有被移位,这是费时.它被破坏了,所以在稍后的时间点,参数已经消失了(如果你再次需要它们并且用不同的值覆盖你的$ arg1,那就很难过).

arrays perl arguments function shift

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

为什么右移-1在PHP中总是给出-1?

我试图找出为什么如果我移动负整数-1我总是得到-1,例如:

echo -1 >> 64; // -1
echo -1 >> 5; // -1
echo -1 >> 43; // -1
echo -1 >> 1; // -1
Run Code Online (Sandbox Code Playgroud)

无论右移的第二个操作数是什么,-1都保持-1 ...我明白当你执行右移时你实际上是这样做的:

x >> y = x / 2^y

但是在x为-1的情况下,如果是,我这样做:

-1 >> 3 = -1 / 2^3

这个值不应该是-1/8 = -0.125吗?

感谢您的关注.

php shift negative-number

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

React:如何使用箭头键转移焦点?(树视图)

我正在寻找允许使用箭头键将元素聚焦在树视图中的解决方案。

目前,我有 treeView (ul) 和 treeNode (li)。每个 treeNode 可能有自己的 treeView 等等。每个 treeNode 都有tabIndex="0"属性来添加使用Tab键在 treeView 中导航的可能性。它工作正常。但我想添加键盘箭头支持来做同样的事情。

知道如何做到这一点吗?PS 我不想使用任何 3rd 方库,除了纯 React、JS。

<section>
  <header>
    { title }
  </header>
  <ul>
    <li>
      <section>
        <header>
          { title }
        </header>
        <ul>
          // etc.
        </ul>
      </section>
    </li>
  </ul>
<section>
Run Code Online (Sandbox Code Playgroud)

javascript focus shift arrow-keys reactjs

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

从熊猫数据框中的前一行减去日期时间值

我有一个包含两列的数据框:类别日期时间

我想创建一个新列,显示当前行与前一行的日期时间之间的差异,在每个 category 重新开始

我拥有的:

Category    Datetime
A           2018-02-01 01:51:04
A           2018-02-01 02:04:04
B           2018-02-01 02:28:34 
B           2018-02-01 02:41:34
B           2018-02-01 02:45:34    
Run Code Online (Sandbox Code Playgroud)

我想要的是:

Category    Datetime               Difference
A           2018-02-01 01:51:04    NaT
A           2018-02-01 02:04:04    00:13:00
B           2018-02-01 02:28:34    NaT
B           2018-02-01 02:41:34    00:13:00
B           2018-02-01 02:45:34    00:04:00
Run Code Online (Sandbox Code Playgroud)

编辑:

@sacul 我尝试了你的解决方案,df['Difference'] = list(by_group.apply(lambda x: x['Datetime']-x['Datetime'].shift()))但它给了我奇怪的结果......这是我正在使用的实际数据:

Category    Datetime        Difference
A           2/1/18 1:51     NaT
A           2/1/18 2:04     1 days 02:52:00
B           2/1/18 2:28     NaT
C           2/1/18 2:41 …
Run Code Online (Sandbox Code Playgroud)

python group-by subtraction shift dataframe

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