标签: flatten

在Django中展平一对多的关系

我有一些基本的一对多关系的模型类.例如,一本书有很多食谱,每个食谱都有很多成分:

class Book(models.Model):
    name = models.CharField(max_length=64)

class Recipe(models.Model):
    book = models.ForeignKey(Book)
    name = models.CharField(max_length=64)

class Ingredient(models.Model):
    text = models.CharField(max_length=128)
    recipe = models.ForeignKey(Recipe)
Run Code Online (Sandbox Code Playgroud)

我想要一份特定书籍所有食谱中所有成分的清单.用Python表达这个的最好方法是什么?

如果我使用LINQ,我可能会写这样的东西:

var allIngredients = from recipe in book.Recipes
                     from ingredient in recipe.Ingredients
                     select ingredient;
Run Code Online (Sandbox Code Playgroud)

python django list flatten

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

如何将多个UIImageViews"拼合"成一个?

我有一种感觉,这不是一件容易的事,但我需要将UIImageView与位于其上方的另一个UIImage视图结合或展平.例如:我有两个UIImageViews.其中一个有草地的UIImage(1200 x 1200像素).另一个是篮球的UIImage(128 x 128像素),它位于草地的图像上方,使篮球看起来像是在草地上.我希望能够将叠加的UIImageViews作为单个图像文件保存到我的相册中,这意味着我需要以某种方式组合这两个图像.这将如何实现?(注意:截取屏幕截图(320 x 480像素)不是一个可接受的解决方案,因为我希望保留1200 x 1600像素的大小.

问题:
如何在保留大小/分辨率的同时将多个UIImageViews拼接成一个并保存生成的图像.

iphone core-graphics pixel flatten uiimage

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

javascript:尝试将数组展平仅一个级别

我正在尝试编写一个函数来展平数组.我有部分功能正常工作,另一半我需要帮助.

flatten: function(anyArray, singleLevel) {
  if (singleLevel == true) {
      flatArray = Array.prototype.concat.apply([], anyArray);
      return flatArray;
  }
  flatArray = Array.prototype.concat.apply([], anyArray);
  if (flatArray.length != anyArray.length) {
      flatArray = someObject.array.flatten(flatArray);
  }
  return flatArray;
}
Run Code Online (Sandbox Code Playgroud)

如果我打字

.flatten([[[1],[1,2,3,[4,5],4],[2,3]]], true);
Run Code Online (Sandbox Code Playgroud)

我希望它只展平一个级别:

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

javascript flatten

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

lxml - 获取一个扁平的元素列表

我想要展平一个lxml etree(特别是HTML,如果重要的话.)我如何获得树中所有元素的平面列表?

python tree lxml dom flatten

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

如何在linq中展平字典<string,List <string >>并将键保留在结果中

你如何在linq中实现以下目标?我觉得应该有一个Linq替代方案.

    var foods = new Dictionary<string, List<string>>();
    foods.Add("Cake", new List<string>() { "Sponge", "Gateux", "Tart" });
    foods.Add("Pie", new List<string>() { "Mud", "Apple" });
    foods.Add("Roll", new List<string>() { "Sausage" });

    var result = new List<Tuple<string, string>>();
    foreach (var food in foods)
    {
        foreach (var detail in food.Value)
        {
            result.Add(new Tuple<string, string>(food.Key, detail));
        }
    }

ie
cake <sponge, gateux>
pie <apple>

to

cake, sponge
cake, gateux
pie,  apple
Run Code Online (Sandbox Code Playgroud)

谢谢

c# linq dictionary flatten

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

如何在C#中展平扁平的json

从这个答案我学会了如何在c#中展平JSON对象.来自JSON字符串:

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}
Run Code Online (Sandbox Code Playgroud)

至:

以下是字符串行,而不是对象

menu.id:file
menu.value:File
menu.popup.menuitem[0].value:New
menu.popup.menuitem[0].onclick:CreateNewDoc()
menu.popup.menuitem[1].value:Open
menu.popup.menuitem[1].onclick:OpenDoc()
menu.popup.menuitem[2].value:Close
menu.popup.menuitem[2].onclick:CloseDoc()
Run Code Online (Sandbox Code Playgroud)

现在,我想扭转这个过程.我可以从这个问题找到实现,但它是在JavaScript中.

如何unflatten(返回从行结构化JSON)在C#与json.net?

c# json flatten

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

在数组内展平对象

我正在尝试将第一个键:值对的值应用于第二个键:值对的数组内的每个值,同时从books数组中删除键,从而生成一个获取此输入的列表:

var fictionCatalog = [
  {
    author: 'Michael Crichton',// push into each book
    books: [
      {name: 'Sphere', price: 10.99},
      {name: 'Jurassic Park', price: 5.99},
      {name: 'The Andromeda Strain', price: 9.99},
      {name: 'Prey', price: 5.99}
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

并记录此输出:

[
 [ Michael Crichton, 'Sphere', 10.99 ], 
 [ Michael Crichton, 'Jurassic Park', 5.99 ],
 [ Michael Crichton, 'The Andromeda Strain', 9.99 ],
 [ Michael Crichton, 'Prey', 5.99 ]
]
Run Code Online (Sandbox Code Playgroud)

哪里我卡住了

var fictionCatalog = [
  {
    author: 'Michael Crichton',
    books: [
      {name: 'Sphere', …
Run Code Online (Sandbox Code Playgroud)

javascript arrays flatten

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

在Kotlin展平阵列

我有一个二维节点数组,我希望使用Kotlin数组的flatten函数将其展平为所有节点的单个数组.

    val nodes = kotlin.Array(width, { width ->
    kotlin.Array(height, { height -> Node(width, height) })
})
Run Code Online (Sandbox Code Playgroud)

然后我尝试在2D数组上调用flatten函数

nodes.flatten()
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:Type mismatch: inferred type is Array<Array<Node>> but Array<Array<out ???>> was expected.还有另一种方法我应该这样做吗?

arrays flatten multidimensional-array kotlin

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

使用def方法和val函数展平Vs flatMap

使用def方法和val函数展平Vs flatMap:

我定义了一个名为toInt的def方法:

  def toInt(s: String): Option[Int] = {
    try {
      Some(Integer.parseInt(s.trim))
    } catch {
      case e: Exception => None
    }
  }
Run Code Online (Sandbox Code Playgroud)

这个方法适用于flatten和flatMap,如下所示:

//using toInt method
val x = 1.to(5).toList
val y = List("a")
val z = x ++ y
val q = z.map(_.toString)

//using map and flatten
println(q.map(toInt).flatten)
//using flatMap
println(q.flatMap(toInt))
Run Code Online (Sandbox Code Playgroud)

现在我在函数"tooInt"中使用val定义了相同的toInt功能(如在def方法中):

val tooInt: String => Option[Int] = s => {
  try {
    Some(Integer.parseInt(s.trim))
  } catch {
    case c: Exception => None
  }
}
Run Code Online (Sandbox Code Playgroud)

这正常工作与扁平化,但如下图所示与flatMap: …

scala flatten flatmap

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

如何合并嵌套在另一个数据帧中的所有数据帧并在一个结果数据帧中生成所有组合?

我有sampledata使用下面的代码复制的数据:

###producing sample data
sampledatain1 <- data.frame(in_1=c(1,2,3,4,5),in_2=c("A","B","C","D","E"),stringsAsFactors = F)
sampledatain2 <- data.frame(in_1=c(6,7,8,9,10),in_2=c("F","G","H","I","J"),stringsAsFactors = F)
sampledatain3 <- data.frame(in_1=c(99,98,97,96,95),in_2=c("Z","Y","X","W","V"),stringsAsFactors = F)
sampledata <- data.frame(row = 1:3,
                    colmerge1 = c("MA","MB","MC"), 
                    colmerge2 = -99:-97,
                    stringsAsFactors = FALSE)
sampledata$df <- list(sampledatain1,sampledatain2,sampledatain3)
Run Code Online (Sandbox Code Playgroud)

我想展平所有嵌套的数据框并将它们组合起来,结果如下desired_data

###reproducing desired data 
library(data.table)
sampledatain1$row <- 1
sampledatain1$colmerge1 <- "MA"
sampledatain1$colmerge2 <- -99

sampledatain2$row <- 2
sampledatain2$colmerge1 <- "MB"
sampledatain2$colmerge2 <- -98

sampledatain3$row <- 3
sampledatain3$colmerge1 <- "MC"
sampledatain3$colmerge2 <- -97

desired_data <- rbindlist(list(sampledatain1,sampledatain2,sampledatain3))
Run Code Online (Sandbox Code Playgroud)

如何使用函数从样本数据生成desired_data来做到这一点?

merge r flatten dataframe data.table

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