小编Ale*_*lex的帖子

R中的For-loop vs while循环

我在R中工作的时候注意到了一个奇怪的事情.当我有一个简单的程序来计算从1到N的平方时使用for-loop和while循环实现的行为是不一样的.(在这种情况下我不关心矢量化或应用函数).

fn1 <- function (N) 
{
    for(i in 1:N) {
        y <- i*i
    }
}
Run Code Online (Sandbox Code Playgroud)

fn2 <- function (N) 
{
    i=1
    while(i <= N) {
        y <- i*i
        i <- i + 1
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是:

system.time(fn1(60000))
   user  system elapsed 
  2.500   0.012   2.493 
There were 50 or more warnings (use warnings() to see the first 50)
Warning messages:
1: In i * i : NAs produced by integer overflow
.
.
.

system.time(fn2(60000))
   user  system elapsed 
  0.138   0.000   0.137 …
Run Code Online (Sandbox Code Playgroud)

floating-point for-loop r while-loop

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

在Activity完成后,onActivityResult()将Intent数据作为null

您好我在调用startActivityForResult()并尝试在onAcvityResult()方法中处理结果.但是,Intent数据为null,结果为RESULT_CANCELED.我不知道为什么.

我正在创建活动:

startActivityForResult(new Intent(this, Class.class),LIST_RESULT);
Run Code Online (Sandbox Code Playgroud)

然后在Activity类中

@Override
public void onBackPressed() {
    super.onBackPressed();

    Intent data = new Intent();
    Bundle bundle = new Bundle();

    bundle.putParcelable("name", la);
    data.putExtras(bundle);

    if (getParent() == null) {
        setResult(Activity.RESULT_OK, data);
    } else {
        getParent().setResult(Activity.RESULT_OK, data);
    }

    //finish();
}
Run Code Online (Sandbox Code Playgroud)

finish()无效.事实上,我在LogCat中收到重复完成请求HistoryRecord的警告

我正在处理结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch(requestCode) {
    case(LIST_RESULT):
        if(resultCode == Activity.RESULT_OK) {
            previousList = data.getExtras();
        }
    break;
    }

}
Run Code Online (Sandbox Code Playgroud)

data为null,resultCode为Action.RESULT_CANCELED.

任何想法为什么我没有得到任何通过?在我设置和阅读它之间有什么改变吗?返回结果的活动中的mParent也为null.

亚历克斯

android

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

如何为Android选择正确的图像分辨率

我一直在和这个争斗几天.我正在尝试写一个小的自定义评级栏.有一些自定义图像.当我检查我的HTC Desire上的图像时,图像看起来非常混乱.我尝试过使用不同的分辨率和不同的尺寸,仍然无法弄清楚什么样的分辨率/如何创造出好的质量.

我已经阅读了android网站上的指南,但无济于事.我认为我遇到的问题是在更高的dpi显示器上显示更低分辨率的图像.因此系统升级了图像.但我不知道如何解决这个问题.分辨率更高的图像 更大的图像?

任何建议都会很棒.

亚历克斯

android uiimage

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

堆上的C++向量而不是堆栈

我遇到了一个有趣的问题.我在C++中有一个函数,它返回一个充满类的向量.返回向量后,它会为向量中元素的每个类调用deconstrustor.问题很明显,数据被破坏,其中类指向在销毁对象时释放的指针.我只能假设解调器被调用,因为vector不在堆栈上.

所以问题是:无论如何都要保持从函数返回向量而不被销毁?或者我是否必须传递一个指针返回向量作为函数的输入.

亚历克斯

c++ heap stack

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

python导入具有相同根包名称和不同位置的不同子包

我想知道是否有人可以阐明这一点.我们有多个具有相同根包的包库,例如a.我也有包a.b位于X和包a.c位于Y. X和Y都在我PYTHONPATH和我当时:

import a.c
import a.b
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:"No module named b".阅读后,在我看来,一旦a.c加载python也写信息a,当我来做,a.b因为它有关于a已经的信息它从来没有困扰在位置X寻找a.b并抛出一个错误,没有b找到任何模块名称.

而且,我发现在X中指定X和Y的顺序PYTHONPATH似乎会影响导入.例如,当我这样做

PYTHONPATH=$PYTHONPATH:X:Y python
>>> import a.b    # works
>>> import a.c    # fails
Run Code Online (Sandbox Code Playgroud)

但如果我这样做

PYTHONPATH=$PYTHONPATH:Y:X python
>>> import a.b    # fails
>>> import a.c    # works
Run Code Online (Sandbox Code Playgroud)

这是正确的,如果是这样,我该如何解决这个问题?拥有一个通用的模块根名称和不同的子包位于不同的项目等是很方便的.当然,我从Java的角度来看你可以做这种重叠.

python

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

ListView中的OnItemClickListener和OnClickListener

我有自定义ListAdapter中每一行的自定义视图,我正在尝试执行onClick操作并获取列表中的行位置.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:paddingLeft="10dip" android:id="@+id/itemRoot" android:clickable="false">

    <TextView android:layout_width="wrap_content" android:text="TextView"
        android:layout_height="wrap_content" android:id="@+id/itemTxt"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"></TextView>
    <TextView android:layout_toRightOf="@+id/itemTxt" android:text="TextView"
        android:layout_height="wrap_content" android:layout_alignBottom="@+id/itemTxt"
        android:id="@+id/amountTxt" android:paddingLeft="6dip"
        android:layout_centerVertical="true" android:layout_width="match_parent"></TextView>
    <ImageView android:id="@+id/delBtn" android:layout_height="wrap_content"
        android:src="@drawable/delete" android:layout_width="wrap_content"
        android:layout_alignParentRight="true" android:paddingRight="10dip"
        android:layout_centerVertical="true"></ImageView>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我想弄清楚当单击TextView或ImageView时,我还需要知道它来自列表中的哪一行.我已经尝试使用OnItemClickListener,它可以正常获取点击来自的行.但是,一旦我为视图注册了OnClick侦听器,就会跳过onItemClicked()方法并立即执行onClick(),但是无法获取视图所在的行位置(或者至少不是我知道如果).

如果我为视图设置clickable为false,则调用onItemClicked并尝试在给定视图上手动调用performClick().但这仅适用于根元素(RelativeLayout),如果click来自布局内的TextView,则单击不会传播.

我无法弄清楚如何在列表中获取这两个位置并执行onClick操作.

欢迎任何想法.

亚历克斯

android listview

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

SQLAlchemy ? JSONB 键上的运算符

我有一个带有 JSONB 列的简单表。在该字段中,我有一个 key:key的值key可以是带有["val1", "val2"]或单个 string的列表"val2"

我得到了一个原始 SQL 查询,该查询在中的值key"val2"

SELECT t.c FROM t WHERE t.c->'key' ? "val2"
Run Code Online (Sandbox Code Playgroud)

但是,我正在努力在 SQLAlchemy 查询中复制它:

我有一个 session

query = session.query(t).filter(t.c.has_key('val2'))
Run Code Online (Sandbox Code Playgroud)

这导致

SELECT t.c FROM t WHERE t.c ? 'val2'但我想要?运营商->

获得->(据我所知)的唯一方法是使用filter(t.c['key2']). 但是,然后我无法执行has_key()我得到:

AttributeError: Neither 'JSONElement' object nor 'Comparator' object has an attribute 'has_key'
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

python sqlalchemy

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