gpt4 book ai didi

c# - 是否可以在 Iron python 中对带有字符串的动态数组进行排序?

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:20 25 4
gpt4 key购买 nike

我正在 Spotfire 中编写一段 Iron Python 代码,通过传递现有的数据表过滤器,根据需求从数据表中提取数据。问题是用户希望按照他们指定的特定排序顺序对值进行排序。问题是:如果我们有整个数据表,我们可以通过列属性 -> 排序顺序 -> 自定义排序顺序对行中的值进行排序并排列它们。但现在我们没有完整的值,所以我们如何在iron python脚本或spotfire中处理它。

提前致谢

最佳答案

我做了类似的工作,将数字值作为字符串进行排序。

我的建议是创建一个计算列,根据您想要的排序方式在实际字符串之前添加空格。在 Spotfire 可视化中,它会修剪字符串,以便用户不会看到它未对齐,并且所有内容都会相应地排序。

如果这是一个简单的任务,可以直接在计算列的表达式中完成。

我的例子:

If([AR Days]<>"(PA)",
If(Integer([AR Days])>360,">360",
If(Integer([AR Days])>359," " & [AR Days],
If(Integer([AR Days])>349," " & [AR Days],
If(Integer([AR Days])>339," " & [AR Days],
If(Integer([AR Days])>329," " & [AR Days],
If(Integer([AR Days])>319," " & [AR Days],
If(Integer([AR Days])>309," " & [AR Days],
If(Integer([AR Days])>299," " & [AR Days],
If(Integer([AR Days])>289," " & [AR Days],
If(Integer([AR Days])>279," " & [AR Days],
If(Integer([AR Days])>269," " & [AR Days],
If(Integer([AR Days])>259," " & [AR Days],
If(Integer([AR Days])>249," " & [AR Days],
If(Integer([AR Days])>239," " & [AR Days],
If(Integer([AR Days])>229," " & [AR Days],
If(Integer([AR Days])>219," " & [AR Days],
If(Integer([AR Days])>209," " & [AR Days],
If(Integer([AR Days])>199," " & [AR Days],
If(Integer([AR Days])>189," " & [AR Days],
If(Integer([AR Days])>179," " & [AR Days],
If(Integer([AR Days])>169," " & [AR Days],
If(Integer([AR Days])>159," " & [AR Days],
If(Integer([AR Days])>149," " & [AR Days],
If(Integer([AR Days])>139," " & [AR Days],
If(Integer([AR Days])>129," " & [AR Days],
If(Integer([AR Days])>119," " & [AR Days],
If(Integer([AR Days])>109," " & [AR Days],
If(Integer([AR Days])>99," " & [AR Days],
If(Integer([AR Days])>89," " & [AR Days],
If(Integer([AR Days])>79," " & [AR Days],
If(Integer([AR Days])>69," " & [AR Days],
If(Integer([AR Days])>59," " & [AR Days],
If(Integer([AR Days])>49," " & [AR Days],
If(Integer([AR Days])>39," " & [AR Days],
If(Integer([AR Days])>29," " & [AR Days],
If(Integer([AR Days])>19," " & [AR Days],
If(Integer([AR Days])>9," " & [AR Days],
" " & [AR Days]))))))))))))))))))))))))))))))))))))),
" (PA)")

对于我更复杂的示例,我允许用户为类似的存储桶选择自定义大小分组,最终存储桶的硬上限为 360+。该值是文本输入框中的一个整数(名为 udBucketSize 的属性),更改的脚本如下:

bck = Document.Properties["udBucketSize"]
if bck < 10:
x = 'If([ACCOUNT LOCATION (2)]="1"," (PA)",'
else:
x = 'If([ACCOUNT LOCATION (2)]="1"," (PA)",'
y = ')'
oldbck = 0
if bck == 1:
x = "[AR Days Workaround]"
else:
while oldbck + bck < 360 and bck > 0:
if oldbck == 0:
x += 'If(DateDiff("day",[FINAL BILL DATE],[SNAPSHOTDATE])<=' + str(oldbck + bck) + ',"'
else:
x += 'If(DateDiff("day",[FINAL BILL DATE],[SNAPSHOTDATE])<=' + str(oldbck + bck - 1) + ',"'
if bck < 10:
z = (360 - oldbck)/10 + 1
n = 1
while n <= z:
x += ' '
n += 1
else:
if oldbck < 100:
x+= ' '
elif oldbck < 200:
x+= ' '
elif oldbck < 300:
x+= ' '
else:
x+= ' '
if oldbck == 0:
x+= str(oldbck) + '-' + str(oldbck+bck) +'",'
oldbck += 1
else:
x+= str(oldbck) + '-' + str(oldbck+bck - 1) +'",'
y+= ')'
oldbck += bck

x += 'If(DateDiff("day",[FINAL BILL DATE],[SNAPSHOTDATE])<=360," ' + str(oldbck) + '-360", ">360")' + y
print x
Document.Properties["udBucketString"] = x

属性 udBucketString 是我的计算列的表达式,现在它按照我想要的方式排序。

类似的方法可用于对字母或特殊字符进行排序。

关于c# - 是否可以在 Iron python 中对带有字符串的动态数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35561120/

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