gpt4 book ai didi

将平面文件中的数据重新分组为带键的散列的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:41 24 4
gpt4 key购买 nike

我经常遇到这个问题。我有一批数据(存储在 CSV、XML 中,没关系)采用这种格式的某些版本:

key1|value1
key1|value2
key1|value3
key2|value4
key2|value5
etc.

并且需要能够以这种形式处理它:

data[key1] => [value1, value2, value3]
data[key2] => [value4, value5]
etc.

从 A 转换到 B 的最佳方法是什么?我通常像这样(伪代码)遍历列表,但我不喜欢我必须重复我的数组构建代码。

data = []
values = []
currentKey = ""
foreach (line in inputData) {
key, value = split(line)
if ((currentKey != "") and (currentKey != key)) {
data[currentKey] = values
values = []
}
currentKey = key
values.add(value)
}
// this is the part I don't like, but it's necessary to capture the last group
data[currentKey] = values

我不会特别指定一种语言,因为我必须至少在 Javascript、C#、Perl 和 PHP 中这样做过。如果有特定于语言的解决方案那会很棒,但我真的在寻找最有效的通用算法方法。

最佳答案

您可以将代码更改为:

data = {}

currentKey = ""

foreach (line in inputData) {

key, value = split(line)
if (currentKey != key) {
data[key] = [] // like data.put(key,new ArrayList<String>()) in java
}
data[key].add(value) // like data.get(key).add(value) in java
currentKey = key
}

关于将平面文件中的数据重新分组为带键的散列的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com