相关疑难解决方法(0)

如何从列表列表中制作一个平面列表?

我想知道是否有一条快捷方式可以在Python列表中列出一个简单的列表.

我可以在for循环中做到这一点,但也许有一些很酷的"单行"?我用reduce尝试了,但是我收到了一个错误.

l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
Run Code Online (Sandbox Code Playgroud)

错误信息

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <lambda>
AttributeError: 'NoneType' object has no attribute 'extend'
Run Code Online (Sandbox Code Playgroud)

python list flatten multidimensional-array

2950
推荐指数
29
解决办法
184万
查看次数

如何"压缩"perl 6中的列表列表?

假设我想要a,b和c中的2个字母的所有排列.

我可以:

my @perm = <a b c>.combinations(2)».permutations;
say @perm;
# [((a b) (b a)) ((a c) (c a)) ((b c) (c b))]
Run Code Online (Sandbox Code Playgroud)

这很接近,但不完全是我需要的.我如何"扁平化"这样以便得到:

# [(a b) (b a) (a c) (c a) (b c) (c b)]
Run Code Online (Sandbox Code Playgroud)

perl6 raku

12
推荐指数
4
解决办法
364
查看次数

如何使用 &gt;&gt; 处理嵌套数组并返回一个平面数组?

我想知道在 Raku 中有一种简洁的方法来处理嵌套数组(数组数组)并将结果展平吗?当转换平面数组>>.很方便时,但如果我想返回数组并且结果应该是平面的,那么 Raku 中可以使用什么构造?

grammar g {
    rule port       { <pnamelist> + %% ","}
    token pnamelist { <id> +  }
    token id        { \w }
}

class a {
    method port ($/)      { make  $<pnamelist>>>.made  }
    method pnamelist ($/) { make  $<id>>>.made  }
    method id ($/ )       { make $/.Str }
}

my $r = g.parse("ab,cd", :rule('port'), :actions(a) ).made; 

say $r; # [[a b] [c d]]
Run Code Online (Sandbox Code Playgroud)

上面的代码片段输出[[a b] [c d]],但是我真正想要的是[a b c d]. …

arrays raku

7
推荐指数
2
解决办法
130
查看次数

将列表列表展平到列表列表中

我已经搜索了SO如何压缩列表列表(例如:在Python中列出列表中的列表)但是我找到的解决方案都没有将列表列表的列表展平为仅列表名单.

我有:

my_list = [ [ [1,2,3],[4,5] ], [ [9],[8,9,10],[3,4,6] ], [ [1] ] ]
Run Code Online (Sandbox Code Playgroud)

我想要:

my_list = [ [1,2,3,4,5], [9,8,9,10,3,4,6], [1] ]
Run Code Online (Sandbox Code Playgroud)

该解决方案也适用于浮动列表.有什么建议?

python list flatten python-2.7

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

如何将列表列表展平一步

我有一个元组列表列表

A= [ [(1,2,3),(4,5,6)], [(7,8,9),(8,7,6),(5,4,3)],[(2,1,0),(1,3,5)] ]
Run Code Online (Sandbox Code Playgroud)

外部列表可以具有任意数量的内部列表,内部列表可以具有任意数量的元组,元组总是具有3个整数.

我想生成元组的所有组合,每个列表中有一个:

[(1,2,3),(7,8,9),(2,1,0)]
[(1,2,3),(7,8,9),(1,3,5)]
[(1,2,3),(8,7,6),(2,1,0)]
...
[(4,5,6),(5,4,3),(1,3,5)]
Run Code Online (Sandbox Code Playgroud)

一个简单的方法是使用类似的函数itertools.poduct() 但必须像这样调用它

itertools.product([(1,2,3),(4,5,6)], [(7,8,9),(8,7,6),(5,4,3)],[(2,1,0),(1,3,5)])
Run Code Online (Sandbox Code Playgroud)

即删除外部列表.我不知道该怎么做.有没有更好的方法来生成元组的所有组合?

python

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