我想将两个Map与JAVA 8 Stream合并:
Map<String, List<String>> mapGlobal = new HashMap<String, List<String>>();
Map<String, List<String>> mapAdded = new HashMap<String, List<String>>();
Run Code Online (Sandbox Code Playgroud)
我尝试使用此实现:
mapGlobal = Stream.of(mapGlobal, mapAdded)
.flatMap(m -> m.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue,
Collectors.toList())
));
Run Code Online (Sandbox Code Playgroud)
但是,此实现仅创建如下结果:
Map<String, List<Object>>
如果未包含一个密钥mapGlobal,则将其添加为具有相应List字符串的新密钥.如果钥匙被复制中mapGlobal和mapAdded,值的列表都将被合并为:A = {1, 3, 5, 7}和B = {1, 2, 4, 6}然后A ? B = {1, 2, 3, 4, 5, 6, 7}.
我希望能够在 python 中读取 YAML jinja 配置文件,就像使用 PyYAML 库一样,但我收到错误:
{% set name = "abawaca" %}
{% set version = "1.00" %}
package:
name: {{ name }}
version: {{ version }}
source:
fn: {{ name }}-{{ version }}.tar.gz
url: https://github.com/CK7/abawaca/archive/v{{ version }}.tar.gz
sha256: 57465bb291c3a9af93605ffb11d704324079036205e5ac279601c9e98c467529
build:
number: 0
requirements:
build:
- gcc # [not osx]
- llvm # [osx]
Run Code Online (Sandbox Code Playgroud) 我一直在寻找在 Scala 中实现可变排序映射的选项。我知道我可以将数据存储在可变映射中,然后在需要时转换为排序映射或从 Java 包装 TreeMap。但是,有谁知道为什么这不在 Scala 中实现?是否反对任何函数式编程风格?
问候
什么是最好的转变方式:
val arr: List[String]
Run Code Online (Sandbox Code Playgroud)
至:
val mapArr: List[Tuple[Int, String]]
Run Code Online (Sandbox Code Playgroud)
哪里:
each Tuple is:
- String value is the an odd index element of the list
- Int the size of the previous value.
Run Code Online (Sandbox Code Playgroud)
例:
val stringArr = List("a", "aaa", "bb", "abc")
val resultShouldBe = List((1, "aaa"), (2, "abc"))
Run Code Online (Sandbox Code Playgroud) 我正在尝试加载 jinja2 格式的 yaml 文件并“评估”/“渲染”模板。在这里,举个例子:
{% set name = "pyexcel-ezodf" %}
{% set version = "0.3.3" %}
package:
name: {{ name|lower }}
version: {{ version }}
Run Code Online (Sandbox Code Playgroud)
我希望能够加载 yaml 文件并表示 yaml['package']['version']=0.3.3
我必须尝试 ruamel YAML,但它不评估版本,只给我一个包。
这里是Python代码:
yaml = YAML(typ='jinja2')
yaml.allow_duplicate_keys = True
yaml.explicit_start = True
yaml_content = yaml.load(content)
print (yaml_content['package'])
Run Code Online (Sandbox Code Playgroud) 我想将地图转换为:
Map<String, List<String>>
Run Code Online (Sandbox Code Playgroud)
至
List<String>
Run Code Online (Sandbox Code Playgroud)
结果列表是所有列表值的合并。
java ×3
java-8 ×2
java-stream ×2
jinja2 ×2
python ×2
pyyaml ×2
scala ×2
collections ×1
lambda ×1
performance ×1
ruamel.yaml ×1