列表中每个版本的记录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表中每个版本的记录相关的知识,希望对你有一定的参考价值。
我有一个版本列表
1.0.0.1 - 10
1.1.0.1 - 10
1.2.0.1 - 10
那是我的名单中的30 nr。但我只想展示每种类型的5个最高nr:
1.0.0.5 - 10
1.1.0.5 - 10
1.2.0.5 - 10
我怎样才能做到这一点?最后一个nr可以是任何数字,但只有3个nr
1.0.0
1.1.0
1.2.0
码:
import groovy.json.JsonSlurperClassic
def data = new URL("http://xxxx.se:8081/service/rest/beta/components?repository=Releases").getText()
/**
* 'jsonString' is the input json you have shown
* parse it and store it in collection
*/
Map convertedJSONMap = new JsonSlurperClassic().parseText(data)
def list = convertedJSONMap.items.version
list
答案
仅版本号通常不易进行排序。所以我将它们分成数字并从那里开始工作。例如。
def versions = [
"1.0.0.12", "1.1.0.42", "1.2.0.666",
"1.0.0.6", "1.1.0.77", "1.2.0.8",
"1.0.0.23", "1.1.0.5", "1.2.0.5",
]
println(
versions.collect{
it.split(/\./)*.toInteger() // turn into array of integers
}.groupBy{
it.take(2) // group by the first two numbers
}.collect{ _, vs ->
vs.sort().last() // sort the arrays and take the last
}*.join(".") // piece the numbers back together
)
// => [1.0.0.23, 1.1.0.77, 1.2.0.666]
以上是关于列表中每个版本的记录的主要内容,如果未能解决你的问题,请参考以下文章
2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试
[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段