标签: sublist

如何在C#中获取子列表

我有一个List<String>,我需要从这个列表中取一个子列表.在.NET 3.5中是否有可用于此的列表方法?

.net c# list .net-3.5 sublist

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

Python列表/子列表选择-1怪异

所以我一直在玩python并注意到一些看起来有些奇怪的东西.-1从列表中选择的语义似乎不一致.

所以我有一个数字列表

ls = range(1000)
Run Code Online (Sandbox Code Playgroud)

当然,列表的最后一个元素,ls[-1]但如果我采用一个子列表,以便从中点到最后得到所有内容我会做

ls[500:-1]
Run Code Online (Sandbox Code Playgroud)

但这并没有给我一个包含列表中最后一个元素的列表,而是一个包含UP到最后一个元素的列表.但是,如果我这样做

ls[0:10]
Run Code Online (Sandbox Code Playgroud)

我得到一个包含第十个元素的列表(因此选择器应该包含在内),为什么它不起作用-1.

我当然可以做ls[500:]ls[500:len(ls)](这将是愚蠢的).我只是想知道-1的交易是什么,我意识到我不需要它.

python list sublist

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

将ArrayList的subList转换为ArrayList

我使用ArrayList并尝试将其一部分复制到另一个ArrayList,因此我使用:

sibling.keys = (ArrayList<Integer>) keys.subList(mid, this.num);
Run Code Online (Sandbox Code Playgroud)

其中"sibling.keys"是新的ArrayList,"keys或this.keys"是旧的ArrayList.我使用了铸造,因为eclipse告诉我这样做但是它抛出了ClassCastException:

java.util.ArrayList $ SubList无法强制转换为java.util.ArrayList

有什么建议?

java arraylist sublist

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

如何在Java中获取有效的子列表?

我在Java中有这个奇怪的(我认为)问题.我有一个ArrayList,我想要一个子列表.但我得到了以下例外.

package javatest;

import java.util.ArrayList;

public class JavaTest {

    public static void main(String[] args) {
        ArrayList<Integer> alist = new ArrayList<Integer>();
        alist.add(10);
        alist.add(20);
        alist.add(30);
        alist.add(40);
        alist.add(50);
        alist.add(60);
        alist.add(70);
        alist.add(80);
        ArrayList<Integer> sub = (ArrayList<Integer>) alist.subList(2, 4);
        for (Integer i : sub)
            System.out.println(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

run:线程"main"中的异常java.lang.ClassCastException:java.util.RandomAccessSubList无法强制转换为javatest.JavaTest.main中的java.util.ArrayList(JavaTest.java:17)Java结果:1

获取子列表的正确方法是什么?

谢谢

java arraylist sublist

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

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

Python将列表拆分为给定开始/结束关键字的子列表

如果我有一个清单,请说

lst = ['hello', 'foo', 'test', 'world', 'bar', 'idk']
Run Code Online (Sandbox Code Playgroud)

我想将它拆分为一个子列表,'foo'并将其'bar'作为开始和结束关键字,以便我得到

lst = ['hello', ['foo', 'test', 'world', 'bar'], 'idk']
Run Code Online (Sandbox Code Playgroud)

我目前这样做的方式如下.

def findLoop(t):   
    inds = [index for index, item in enumerate(t) if item in ["FOO", "BAR"]]
    centre = inds[(len(inds)/2)-1:(len(inds)/2)+1]
    newCentre = t[centre[0]:centre[1]+1]
    return t[:centre[0]] + [newCentre] + t[centre[1]+1:]

def getLoops(t):
    inds = len([index for index, item in enumerate(t) if item in ["FOO", "BAR"]])
    for i in range(inds):
        t = findLoop(t)
    return t
Run Code Online (Sandbox Code Playgroud)

这看起来有点混乱,但它对于嵌套的开始/结束关键字非常有效,因此子列表可以在子列表中形成,但它不适用于多个开始/结束关键字不在彼此内部.嵌套并不重要,所以任何帮助都将受到赞赏.

python loops list sublist

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

Haskell:测试列表是否包含特定的"子列表"

是否有一个技巧或前奏函数来测试列表是否包含特定的子字符串/子列表?

xyz :: [a] -> [a] -> Bool
xyz "hello world" "worl" -> True
xyz [1,2,3,4,5,6,7,8,1,2,3,4,5] [7,8,1] -> True
Run Code Online (Sandbox Code Playgroud)

我试着自己写一个,但这是一个微不足道的问题,我不想重新发明轮子.

search haskell substring list sublist

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

以一切可能的方式将列表拆分为两个子列表

例如,我有一个可变大小的列表

[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

我想尽可能地将这个列表分成两部分:

([], [1, 2, 3, 4])
([1], [2, 3, 4])
([2], [1, 3, 4])
([3], [1, 2, 4])
([4], [1, 2, 3])
([1, 2], [3, 4])
([1, 3], [2, 4])
([1, 4], [2, 3])
([2, 3], [1, 4])
([2, 4], [1, 3])
([3, 4], [1, 2])
([1, 2, 3], [4])
([1, 2, 4], [3])
([1, 3, 4], [2])
([2, 3, 4], [1])
([1, 2, 3, 4], [])
Run Code Online (Sandbox Code Playgroud)

我很确定这不是一个未知的问题,可能有一个算法,但我找不到一个.此外,这不应该使用任何外部库,而是使用大多数语言中的简单语言功能(循环,条件,方法/函数,变量......).

我在Python中编写了一个hackish解决方案:

def get_all(objects):
    for i in range(1, …
Run Code Online (Sandbox Code Playgroud)

python java algorithm list sublist

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

将列表拆分为不均匀的组?

我知道如何将列表拆分成偶数组,但我无法将其拆分为不均匀的组.

基本上这就是我所拥有的:一些列表,我们称之为mylist包含x元素的列表.

我还有另一个文件,我们称之为second_list,看起来像这样:

{2, 4, 5, 9, etc.}
Run Code Online (Sandbox Code Playgroud)

现在我想做的是mylist通过second_list中的间距划分为不均匀的组.所以,我希望我的第一组成为前两个元素mylist,第二组成为接下来的4个元素mylist,第三组成为接下来的5个元素mylist,第四组成为下一个9元素的"mylist",等等.

有一些简单的方法来做到这一点?如果你想将它分成偶数组,我尝试做类似的事情:

for j in range(0, len(second_list)):
    for i in range(0, len(mylist), second_list[j]):
        chunk_mylist = mylist[i:i+second_list[j]]
Run Code Online (Sandbox Code Playgroud)

然而,这不会像我想要的那样分裂它.我想用我的#子列表是的,结束了len(second_list),也正常分裂,这给比这更大量的(也是分裂不正确地).

python split list sublist python-2.7

13
推荐指数
4
解决办法
3094
查看次数

使用分隔符从列表中创建Python子列表

我有以下列表:

['|', u'MOM', u'DAD', '|', u'GRAND', '|', u'MOM', u'MAX', u'JULES', '|']
Run Code Online (Sandbox Code Playgroud)

并希望它被"|"拆分 所以结果看起来像:

[[u'MOM', u'DAD'],[ u'GRAND'], [u'MOM', u'MAX', u'JULES']]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我只在网上找到需要一定长度元素的子列表示例

python split sublist

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