标签: flatten

F# - 拼合列表/范围

我是F#的新手,我想知道如何平整列表.

基本上在数据库中我存储了一个带有min_age和max_age范围的记录(为了简洁起见,这是一个虚构的例子 - 我不是很疯狂!).我的字段看起来如下所示:

id,cost,savings,min_age,max_age

我本质上有一个F#类,它充当与该表的一对一映射 - 即所有属性都精确映射到数据库字段.

我想做的是平整这个范围.所以,而不是包含这样的项目的列表:

saving_id = 1, cost = 100, savings = 20, min_age = 20, max_age = 26
saving_id = 2, cost = 110, savings = 10, min_age = 27, max_age = 31
Run Code Online (Sandbox Code Playgroud)

我想要一个包含这样的项目的列表:

saving_id = 1, cost = 100, savings = 20, age = 20
saving_id = 1, cost = 100, savings = 20, age = 21
etc.
saving_id = 2, cost = 110, savings = 10, age = 27
saving_id = 2, …
Run Code Online (Sandbox Code Playgroud)

f# flatten

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

如何在PHP中展开多维数组(原始键访问路径作为单个键存储)?

我正在使用以下函数来展平多维数组:

function flatten($array, $prefix = '') {
    $result = array();
    foreach($array as $key=>$value) {
        if(is_array($value)) {
            $result = $result + flatten($value, $prefix . $key . '.');
        }
        else {
            $result[$prefix . $key] = $value;
        }
    }
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个匹配函数,unflatten它将反转该过程(例如,如果密钥中包含一个子数组,则创建一个子数组.).有任何想法吗?

php flatten multidimensional-array

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

什么是破坏性的?

我知道Ruby有很多方法,特别是在数组或类似对象的数组上,例如sortflatten.然而,这些方法也有一个双胞胎(带感叹号的那个)像sort!flatten!.

现在我的问题是:

  • flattenflatten!(破坏性扁平)有什么区别?
  • 一个更普遍的问题,为什么它被称为破坏性?

ruby arrays flatten

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

flatten是什么意思?

我试图理解定义Some::flatten并遇到麻烦.以下是它的外观:

def flatten[B](implicit ev: A <:< Option[B]): Option[B] =
  if (isEmpty) None else ev(this.get)
Run Code Online (Sandbox Code Playgroud)

我不明白的意思A <:< Option[B].什么<:<意思?

scala flatten

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

展平python中每个键的值

我有一个这样的字典:

migration_dict = {'30005': ['key42750','key43119', 'key44103', ['key333'],
['key444'], ['keyxx']], '30003': ['key43220', 'key42244','key42230',
['keyzz'], ['kehh']]}
Run Code Online (Sandbox Code Playgroud)

我怎样才能压平每个键的值以便得到类似的东西:

migration_dict = {'30005': ['key42750','key43119', 'key44103', 'key333',
'key444', 'keyxx'], '30003': ['key43220', 'key42244','key42230',
'keyzz', 'kehh']}
Run Code Online (Sandbox Code Playgroud)

python dictionary flatten python-2.7

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

将嵌套的 JSON 数组转换为 CSV 文件中的单独列

我有一个如下所示的 JSON 文件:

{
    "id": 10011,
    "title": "Test procedure",
    "slug": "slug",
    "url": "http://test.test",
    "email": "test@test.com",
    "link": "http://test.er",
    "subject": "testing",
    "level": 1,
    "disciplines": [
      "discipline_a",
      "discipline_b",
      "discipline_c"
    ],
    "areas": [
      "area_a",
      "area_b"
    ]
  },
Run Code Online (Sandbox Code Playgroud)

我试图使用以下命令将其转换为 CSV 文件:

(Get-Content "PATH_TO\test.json" -Raw | ConvertFrom-Json)| Convertto-CSV -NoTypeInformation | Set-Content "PATH_TO\test.csv"
Run Code Online (Sandbox Code Playgroud)

但是,对于学科和领域,我在生成的 CSV 文件中获取 System.Object[]。

有没有办法将所有这些嵌套值作为单独的列放在 CSV 文件中,如 area_1、area_2 等。对于学科也是如此。

csv powershell json data-conversion flatten

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

PHP Laravel 5.5集合变平并保留整数键?

我有以下数组:

$array = [
    '2' => ['3' => ['56' => '2'], '6' => ['48' => '2']],
    '4' => ['4' => ['433' => '2', '140' => '2'], '8' => ['421' => '2', '140' => '2']],
    '5' => ['5' => ['88' => '4', '87' => '2']]
];
Run Code Online (Sandbox Code Playgroud)

以下代码(拼合)应通过保留键返回,但不是吗?

collect($array)->flatten(1);
Run Code Online (Sandbox Code Playgroud)

应该给我

[
    '3' => ['56' => '2'],
    '6' => ['48' => '2'],
    '4' => ['433' => '2', '140' => '2'],
    '8' => ['421' => '2', '140' => '2'],
    '5' => ['88' => '4', …
Run Code Online (Sandbox Code Playgroud)

php flatten collect laravel

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

Python 3:展平嵌套字典和字典中的列表

我正在处理一个复杂的嵌套字典和列表数据结构。我需要展平数据并将所有嵌套项都置于0级。有关更多说明,请参见以下示例:

{a:1,b:2,c:{c1:[{c11:1,c12:2,c13:3},{c21:1,c22:2,c23:3}],d1:[{d11:1,d12:2,d13:3},{d21:1,d22:2,d23:3}]},x:1,y:2}
Run Code Online (Sandbox Code Playgroud)

我需要将其展平为:

{a:1,b:2,c_c1_c11:1, c_c1_c12:2,c_c1_c13:3,c_c1_c21:1,c_c1_c22:2,c_c1_c23:3, c_d1,d11:1...and so on}
Run Code Online (Sandbox Code Playgroud)

我从这篇文章的第一个答案中获得了参考,但是它只有在我嵌套了字典的情况下才可以使用,并且如果列表嵌套在字典中并且更多的字典嵌套在这些列表中则不能使用。

我对代码进行了一些修改以适合我的用例,但是此代码不起作用

def flattenDict(d):
node_map = {}
node_path = []
def nodeRecursiveMap(d, node_path):
    for key, val in d.items():
        if ((type(val) is not dict)&(type(val) is not list)): 
            node_map['_'.join(node_path + [key])] = val
        if type(val) is list:
            def nodeListRecursion(val,node_path):
                for element in val:
                    if ((type(element) is not dict)&(type(element) is not list)) : node_map['_'.join(node_path + [key])] = element
                    if type(element) is list: nodeListRecursion(element,node_map)
                    if type(element) is dict: nodeRecursiveMap(element, node_path + [key])
            nodeListRecursion(val,node_path)
        if …
Run Code Online (Sandbox Code Playgroud)

python dictionary nested list flatten

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

Keras 中的非展平层

我想创建一个简单的 Keras 神经网络,它接受一个维度的输入矩阵(rows, columns) = (n, m),将矩阵展平到一个维度(n*m, 1),通过多个任意层发送展平后的矩阵,并在最后一层,再次将矩阵取消展平到一个维度的(n, m)释放这最终矩阵作为输出之前。

我遇到的问题是我在keras.io页面上没有找到任何关于 Unflatten 层的文档,我想知道是否有这样一个看似标准的通用层不存在的原因。有没有更自然、更简单的方法来完成我的提议?

python flatten neural-network reshape keras

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

使用Java 8将Map &lt;String,Map &lt;String,Car &gt;&gt;映射到List &lt;Car&gt;

假设我具有标题中描述的结构:

Map<String, Map<String, Car>> mapNeighborhood
Run Code Online (Sandbox Code Playgroud)

包含附近分别由地址和车牌索引的所有汽车。我要选择所有红色汽车以黑色重新粉刷。为了完成该任务,我尝试使用Java 8来“平展”两个Map并获得一个List。一旦获得List,则应用谓词后,我只能选择红色汽车并进行重新绘制。

List<Car> listCars = new ArrayList<Car>();

mapNeighborhood.values().forEach(map -> map.values()
                                           .forEach(car -> listCars.add(car)));

listCars.stream().filter(Car::isRed)
                 .forEach(car -> car.repaint(Color.Black));
Run Code Online (Sandbox Code Playgroud)

我敢肯定,在Java 8中仅使用一行就可以实现相同的目标,但是我认为您可能会失去可读性。

我的问题是:是否还有另一种较不冗长的方式将地图拼合为列表?也许使用flatMap。提前致谢。

java flatten java-8

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