我正在尝试创建一个函数,用于在方案中使用R5RS语言展平列表,并且遇到了我的函数只返回输入列表而不删除括号的问题.我认为这是由于额外的缺点,但当我删除它时,输出变为列表,没有括号中的元素.有人能指出我正确的方向吗?
(define (denestify lst)
(cond ((null? lst)'())
((list? (car lst))(cons (denestify (cons (car (car lst))(cdr (car lst))))
(denestify (cdr lst))))
(else (cons (car lst)(denestify (cdr lst))))))
Run Code Online (Sandbox Code Playgroud) 现在我有一本字典,
{2.9: [0.66], 3.3: [0.82, 0.48]}
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个由两个列表组成的元组:
([3.3, 3.3, 2.9], [0.82, 0.48, 0.66])
Run Code Online (Sandbox Code Playgroud)
3.3
出现两次,因为相应的词典条目中有两个元素.
我该怎么做?
我正在使用javascript,我已经嵌套了jong对象来自mongodb.
"abc": [
{
"a": "01AABCE2207R1Z5",
"b": "Y",
"c": [
{
"ca": "A",
"cb": "AflJufPlFStqKBZ",
"cc": "S008400"
},
{
"cx": "A",
"cy": "AflJufPlFStqKBZ",
"cz": "S008400"
}
]
},
{
"a": "01AABCE2207R1Z5",
"b": "Y",
"c": [
{
"ca": "A",
"cb": "AflJufPlFStqKBZ",
"cc": "S008400"
},
{
"cx": "A",
"cy": "AflJufPlFStqKBZ",
"cz": "S008400"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
上面的模式有固定的字段,架构中不会有任何变化.
现在我想把它作为平面json数组对象,结果应该是这样的.如果c
有多个JSON对象的,应该创建一个新的JSON对象以相同的a
,b
值
[{
"a": "01AABCE2207R1Z5",
"b": "Y",
"ca": "A",
"cb": "AflJufPlFStqKBZ",
"cc": "S008400"
},
{
"a": "01AABCE2207R1Z5",
"b": "Y",
"cx": …
Run Code Online (Sandbox Code Playgroud) 保证某些未知值在序列中的惯用方法是什么,该值可能已经或不可能已经在序列中?(into [] val)
如果 val 尚未在 seq 中,则失败(conj [] val)
始终有效,但可能会嵌套,即[[val...]]
(哦,并且未嵌套,如果已经在 seq 中)* 是简单的(flatten (conj
吗?
我有这个输出:
[[[-0.015, -0.1533, 1. ]]
[[-0.0069, 0.1421, 1. ]]
...
[[ 0.1318, -0.4406, 1. ]]
[[ 0.2059, -0.3854, 1. ]]]
Run Code Online (Sandbox Code Playgroud)
但我想删除剩余的方括号,如下所示:
[[-0.015 -0.1533 1. ]
[-0.0069 0.1421 1. ]
...
[ 0.1318 -0.4406 1. ]
[ 0.2059 -0.3854 1. ]]
Run Code Online (Sandbox Code Playgroud)
我的代码是这样的:
XY = []
for i in range(4000):
Xy_1 = [round(random.uniform(-0.5, 0.5), 4), round(random.uniform(-0.5, 0.5), 4), 1]
Xy_0 = [round(random.uniform(-0.5, 0.5), 4), round(random.uniform(-0.5, 0.5), 4), 0]
Xy.append(random.choices(population=(Xy_0, Xy_1), weights=(0.15, 0.85)))
Xy = np.asarray(Xy)
Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的对象:
List<classA> obj = new List<classA>() {
new classA() { vCode = "100", sCode = "PB", regional = "A", new List<classB>() {
new classB() { amount = 100, aCode = "A100", status = 1 },
new classB() { amount = 110, aCode = "A200", status = 1 },
new classB() { amount = 150, aCode = "A300", status = 1 }
}
},
new classA() { vCode = "101", sCode = "KB", regional = "A", new List<classB>() {
new classB() …
Run Code Online (Sandbox Code Playgroud) 我有一个对象数组,其中一个属性("attributes"
)作为对象数组。
var products = [
{
"productId": "1",
"attributes": [
{
"variant":"red",
"price": "134.00"
}
]
},
{
"productId": "2",
"attributes": [
{
"variant": "green",
"value": "3400.00"
},
{
"variant": "pink",
"price": "342.00"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我希望将对象的嵌套数组展平并复制到父对象上,但需要为每个嵌套对象复制父对象。(不确定我是否解释正确)。
转换后的对象数组应该是:
var transformedProducts = [
{
"productId": "1",
"variant":"red",
"price": "134.00"
},
{
"productId": "2",
"variant": "green",
"value": "3400.00"
},
{
"productId": "2",
"variant": "pink",
"price": "342.00"
}
]
Run Code Online (Sandbox Code Playgroud)
我可以映射外部数组,然后再次映射内部数组,并在最里面的映射中构造一个新对象。
是否有更好或更实用的方法?
我有一个嵌套HashMap
在这种形式:
{key1=val1, key2=val2,
key3=[
{key4=val4, key5=val5},
{key6=val6, key7=val7}
]
}
Run Code Online (Sandbox Code Playgroud)
我现在想展平该地图,以便所有条目都在同一级别:
{key1=val1, key2=val2, key4=val4, key5=val5,key6=val6, key7=val7}
Run Code Online (Sandbox Code Playgroud)
当我尝试
map.values().forEach(map.get("key3")::addAll);
Run Code Online (Sandbox Code Playgroud)
如本文所述,我收到以下错误:
invalid method reference
cannot find symbol
symbol: method addAll(T)
location: class Object
where T is a type-variable:
T extends Object declared in interface Iterable
Run Code Online (Sandbox Code Playgroud)
有没有通用的方法来展平任何给定的Map
?
我想将此 JSON 压缩为 tsv 文件。
https://www.vi4io.org/assets/io500/2019-06/data.json
问题是每个条目({} 的第一级)都有许多字段/子字段。我不想指定这么多字段名称。并且不能保证所有条目的字段/子字段都相同。因此,我希望结果列包含所有字段/子字段的联合。列名称的顺序应尽可能接近原始 json 文件。(例如,同一字段中的那些子字段应一起列在 tsv 中)。
将此json文件转换为tsv的最佳方法是什么?谢谢。