You’ve sorted your items using the Python node, they don’t need to be sorted again. You just need to know on which index they are now, because it has changed. To do that, use List.IndexOf, this will give you the sorted indexes and then use List.GetItemAtIndex to get your main list items in the correct order. Basically, something like:
My thoughts about this:
When you have a certain data ranging from 1 to 9 before the first “.” (such as “1.1.1, 2.1, 3.1”), the sort function works fine. However, when mixing those with items whose first digit is greater than 9, before the first “.” (1.1, 10.1, 2.1, 11.5), the sort function will not work like you expect, of course, talking about strings here. This problem happened to one of your examples.
So, you can try to sort and get the items in your main list in this way:
first_itm = DSCore.List.FirstItem(DSCore.String.Split(x,".")<1>);
len = DSCore.String.Length(first_itm);
group = DSCore.List.GroupByKey(x,len)["groups"];
sorted = DSCore.List.Flatten(DSCore.List.Sort(group<1>));
idx = DSCore .List.IndexOf(x,sorted);
get_itms = DSCore.List.GetItemAtIndex(y,idx);


