首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在pine脚本中通过值float( value )和另一个字符串数组(Key)对数组进行排序?

在pine脚本中,可以使用sort()函数来对数组进行排序。sort()函数可以接收一个可选的key参数来指定排序的依据。

如果要根据值进行排序,可以使用float(value)将值转换为浮点数,并将其作为key参数传递给sort()函数。同时,还需要提供一个排序顺序的参数,可以是升序(asc)或降序(desc)。

以下是示例代码:

代码语言:txt
复制
//@version=4
study("Array Sort Example", overlay=true)

values = [3.14, 1.23, 2.56, 0.98, 4.67]
keys = ["Key1", "Key2", "Key3", "Key4", "Key5"]

//@sort_desc为升序排序,@sort_asc为降序排序
//@ascending = true表示升序,false表示降序
//@false为升序,true为降序
ascending = false

// 根据值进行排序
//@float(value)将value转换为浮点数
sort(indices, key) =>
    for i = 0 to (length(indices) - 1)
        for j = i + 1 to length(indices)
            if ascending ? key[i] > key[j] : key[i] < key[j]
                tmp = indices[i]
                indices[i] := indices[j]
                indices[j] := tmp

// 根据值进行排序
sortFloat(indices, key) =>
    for i = 0 to (length(indices) - 1)
        for j = i + 1 to length(indices)
            if ascending ? float(key[i]) > float(key[j]) : float(key[i]) < float(key[j])
                tmp = indices[i]
                indices[i] := indices[j]
                indices[j] := tmp

// 对数组进行排序
if ascending
    sortFloat(sorted_indices, values)
else
    sort(sorted_indices, values)

// 打印排序后的结果
for i = 0 to length(sorted_indices) - 1
    label.new(bar_index[i], values[sorted_indices[i]], tostring(values[sorted_indices[i]]), yloc=yloc.abovebar)

这段代码会根据values数组的值进行排序,并在图表上方显示排序后的值。ascending变量可以控制排序的顺序,true表示升序,false表示降序。

请注意,以上示例代码只涉及到了如何在pine脚本中通过值进行排序,而没有涉及到字符串数组(keys)。如果需要将keysvalues关联并进行排序,可以使用相同的索引来访问对应的值。

对于腾讯云相关产品和产品介绍链接地址,由于限制不能直接提及品牌商,建议您自行查阅腾讯云的文档或官方网站,以获取相关产品和详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

27 个问题,告诉你Python为什么这么设计

为什么有单独的元组列表数据类型? 列表是如何在CPython实现的? 字典是如何在CPython实现的? 为什么字典key必须是不可变的? 为什么 list.sort() 没有返回排序列表?...CPython float 类型使用C语言的 double 类型进行存储。...只有不变元素可以用作字典的key,因此只能将元组非列表用作key。 列表如何在CPython实现? CPython的列表实际上是可变长度的数组,而不是lisp风格的链表。...此函数从提供的可迭代列表创建新列表,进行排序并返回。例如,下面是如何迭代遍历字典并按keys排序: for key in sorted(mydict): ......另一个次要原因是冒号使带有语法突出显示的编辑器更容易工作;他们可以寻找冒号来决定何时需要增加缩进,而不必程序文本进行更精细的解析。 为什么Python在列表元组的末尾允许使用逗号?

6.7K11
  • C# SortedList类概念示例

    SortedList 在内部维护两个数组以将数组存储到列表;即,一个数组用于键,另一个数组用于相关联的。每个元素都是一个可作为 DictionaryEntry 对象进行访问的键/。...因此,当在 SortedList 添加或移除元素时,特定键/的索引可能会更改。 由于要进行排序,所以在 SortedList 上操作比在 Hashtable 上操作要慢。...但是,SortedList 允许通过相关联键或通过索引进行访问,可提供更大的灵活性。 此集合的索引从零开始。   .../数组来实现,它按键排序。...此示例演示如何在排序列表枚举键,以及如何使用 Keys 属性 Values 属性分别枚举键。 最后,此示例演示了 Remove 方法。

    1.6K20

    面试题(三)

    use 加强:从同一 namespace 导入的类、函数常量现在可以通过单个 use 语句 一次性导入了 匿名类:现在支持通过new class 来实例化一个匿名类 PHP 数组排序 sort()...- 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据,以升序关联数组进行排序 ksort() - 根据键,以升序关联数组进行排序 arsort() - 根据,以降序关联数组进行排序...krsort() - 根据键,以降序关联数组进行排序 建立索引 (普通索引)-> 创建:CREATE INDEX ON tablename (索引字段) 修改:ALTER TABLE...Memcahce是把所有的数据保存在内存当中,采用hash表的方式,每条数据又keyvalue组成,每个key是独一无二的,当要访问某个的时候先按照找到,然后返回结果。...有两点一定要记住: 用户会话采用适当的安全措施,例如:给每一个会话更新id用户使用SSL。生成另一个一次性的令牌并将其嵌入表单,保存在会话(一个会话变量),在提交时检查它。

    2.4K10

    面试题(四)

    use 加强:从同一 namespace 导入的类、函数常量现在可以通过单个 use 语句 一次性导入了 匿名类:现在支持通过new class 来实例化一个匿名类 PHP 数组排序 sort()...- 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据,以升序关联数组进行排序 ksort() - 根据键,以升序关联数组进行排序 arsort() - 根据,以降序关联数组进行排序...krsort() - 根据键,以降序关联数组进行排序 建立索引 (普通索引)-> 创建:CREATE INDEX ON tablename (索引字段) 修改:ALTER TABLE...Memcahce是把所有的数据保存在内存当中,采用hash表的方式,每条数据又keyvalue组成,每个key是独一无二的,当要访问某个的时候先按照找到,然后返回结果。...有两点一定要记住: 用户会话采用适当的安全措施,例如:给每一个会话更新id用户使用SSL。生成另一个一次性的令牌并将其嵌入表单,保存在会话(一个会话变量),在提交时检查它。

    2.3K20

    常见PHP面试题型汇总(附答案)

    use 加强:从同一 namespace 导入的类、函数常量现在可以通过单个 use 语句 一次性导入了 匿名类:现在支持通过new class 来实例化一个匿名类 20、PHP 数组排序 sort(...) - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据,以升序关联数组进行排序 ksort() - 根据键,以升序关联数组进行排序 arsort() - 根据,...以降序关联数组进行排序 krsort() - 根据键,以降序关联数组进行排序 21、建立索引 (普通索引)-> 创建:CREATE INDEX ON tablename (索引字段) 修改...Memcahce是把所有的数据保存在内存当中,采用hash表的方式,每条数据又keyvalue组成,每个key是独一无二的,当要访问某个的时候先按照找到,然后返回结果。...XSS攻击 :跨站点脚本攻击,由用户输入一些数据到你的网站,其中包括客户端脚本(通常JavaScript)。如果你没有过滤就输出数据到另一个web页面,这个脚本将被执行。

    2.8K20

    python数组使用(超级全面)「建议收藏」

    如果您定义了一个的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。 * 如果不需要修改的数据进行 “写保护”, 可以使代码更安全。...,并允许是不同类型的,下面实例来说明: #下面例子 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性。...如果您定义了一个的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。 * 如果不需要修改的数据进行 “写保护”, 可以使代码更安全。...,并允许是不同类型的,下面实例来说明: #下面例子 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性。...如果您定义了一个的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。 * 如果不需要修改的数据进行 “写保护”, 可以使代码更安全。

    90020

    27 个问题,告诉你Python为什么这么设计?

    CPython float 类型使用C语言的 double 类型进行存储。...只有不变元素可以用作字典的key,因此只能将元组非列表用作key。 列表如何在CPython实现? CPython的列表实际上是可变长度的数组,而不是lisp风格的链表。...为什么 list.sort() 没有返回排序列表? 在性能很重要的情况下,仅仅为了排序而复制一份列表将是一种浪费。因此, list.sort() 列表进行了适当的排序。...此函数从提供的可迭代列表创建新列表,进行排序并返回。例如,下面是如何迭代遍历字典并按keys排序: for key in sorted(mydict): ......另一个次要原因是冒号使带有语法突出显示的编辑器更容易工作;他们可以寻找冒号来决定何时需要增加缩进,而不必程序文本进行更精细的解析。 为什么Python在列表元组的末尾允许使用逗号?

    3.1K20

    干货 | 27 个问题,告诉你 Python 为什么如此设计?

    CPython float 类型使用 C 语言的 double 类型进行存储。...只有不变元素可以用作字典的 key,因此只能将元组非列表用作 key。 18. 列表如何在 CPython 实现? CPython 的列表实际上是可变长度的数组,而不是 lisp 风格的链表。...为什么 list.sort() 没有返回排序列表? 在性能很重要的情况下,仅仅为了排序而复制一份列表将是一种浪费。因此, list.sort() 列表进行了适当的排序。...此函数从提供的可迭代列表创建新列表,进行排序并返回。例如,下面是如何迭代遍历字典并按 keys 排序: for key in sorted(mydict): ......另一个次要原因是冒号使带有语法突出显示的编辑器更容易工作;他们可以寻找冒号来决定何时需要增加缩进,而不必程序文本进行更精细的解析。 27. 为什么 Python 在列表元组的末尾允许使用逗号?

    2.6K20

    Python官方二十七问,你知道个啥?

    CPython float 类型使用 C 语言的 double 类型进行存储。...只有不变元素可以用作字典的 key,因此只能将元组非列表用作 key。 18. 列表如何在 CPython 实现? CPython 的列表实际上是可变长度的数组,而不是 lisp 风格的链表。...为什么 list.sort() 没有返回排序列表? 在性能很重要的情况下,仅仅为了排序而复制一份列表将是一种浪费。因此, list.sort() 列表进行了适当的排序。...此函数从提供的可迭代列表创建新列表,进行排序并返回。例如,下面是如何迭代遍历字典并按 keys 排序: for key in sorted(mydict): ......另一个次要原因是冒号使带有语法突出显示的编辑器更容易工作;他们可以寻找冒号来决定何时需要增加缩进,而不必程序文本进行更精细的解析。 27. 为什么 Python 在列表元组的末尾允许使用逗号?

    2.5K20

    Python学习极简教程 (一)

    元组 (set,集合):元组列表十分类似,但元组不允许重复出现。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组的时候,即被使用的元组的不会改变。...键值在字典以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/用冒号分割,而各个用逗号分割,所有这些都包括在花括号。...记住字典的键/是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己它们排序。列表变量的名字最好不为dict,可以使用aDict。 序列:列表、元组、字符串都是一种序列格式。...#a,b = b,a #------------------- print a print b 给定数值变量ab的通过判断重新赋值使得a的小,b的大 3 5 print '''#数值运算,...(): print key,value 输出字典的键值(key-value) a b 1 2 3 4 e f d c 5 6 print "有序输出字典的键值(key-value)" aDict

    2.9K121

    20分钟学会数组与切片

    例如,整数 5、8、9、79、76 的集合形成一个数组。Go 不允许混合不同类型的,例如,同时包含字符串整数的数组。 声明数组 数组属于类型 。 表示数组的元素数,并表示每个元素的类型。...这意味着,当它们被分配给新变量时,原始数组的副本将分配给新变量。如果新变量进行了更改,它将不会反映在原始数组。...另一个 2d 数组在第 23 行声明,并为每个索引逐个添加字符串。这是初始化 2d 数组的另一种方法。 第 7 行的函数使用两个 for 范围循环来打印 2d 数组的内容。...for 循环将这些索引递增 1。当我们在for循环之后打印数组时,我们可以看到切片的更改反映在数组。...切片所做的修改将反映在数组。 切片长度容量 切片的长度是切片中元素的数量。切片的容量是从创建切片的索引开始的基础数组的元素数。

    1.8K10

    干货 | 27 个问题,告诉你 Python 为什么如此设计?

    CPython float 类型使用 C 语言的 double 类型进行存储。...只有不变元素可以用作字典的 key,因此只能将元组非列表用作 key。 18. 列表如何在 CPython 实现? CPython 的列表实际上是可变长度的数组,而不是 lisp 风格的链表。...为什么 list.sort() 没有返回排序列表? 在性能很重要的情况下,仅仅为了排序而复制一份列表将是一种浪费。因此, list.sort() 列表进行了适当的排序。...此函数从提供的可迭代列表创建新列表,进行排序并返回。例如,下面是如何迭代遍历字典并按 keys 排序: for key in sorted(mydict): ......另一个次要原因是冒号使带有语法突出显示的编辑器更容易工作;他们可以寻找冒号来决定何时需要增加缩进,而不必程序文本进行更精细的解析。 27. 为什么 Python 在列表元组的末尾允许使用逗号?

    2.7K10

    Python 核心设计理念27个问题及解答

    CPython float 类型使用 C 语言的 double 类型进行存储。...只有不变元素可以用作字典的 key,因此只能将元组非列表用作 key。 18. 列表如何在 CPython 实现? CPython 的列表实际上是可变长度的数组,而不是 lisp 风格的链表。...为什么 list.sort() 没有返回排序列表? 在性能很重要的情况下,仅仅为了排序而复制一份列表将是一种浪费。因此, list.sort() 列表进行了适当的排序。...此函数从提供的可迭代列表创建新列表,进行排序并返回。例如,下面是如何迭代遍历字典并按 keys 排序: for key in sorted(mydict): ......另一个次要原因是冒号使带有语法突出显示的编辑器更容易工作;他们可以寻找冒号来决定何时需要增加缩进,而不必程序文本进行更精细的解析。 27. 为什么 Python 在列表元组的末尾允许使用逗号?

    3.3K21

    想学习php的,不如来这里看看

    .php数组 数组是由多个元素组成,每个元素由key-valuevalue有八种数据类型 索引数组关联数组的混合使用,关联数组的使用不影响索引数组的下标 例如:$arr = array("name...)可以遍历一切数组,foreach($arr as $key => $val),as就是从$arr取值$val,然后再在循环里面打印数组,关联数组索引被称为键值,listeach遍历数组,感觉麻烦...key asort();保留key升序排列 arsort();保留key降序排列 ksort();根据key升序排列,排列后keyvalue互换 krsort();...根据key降序排列,排列后keyvalue互换 natsort();用自然排序算法升序排列,如果想降序排列,可以再使用array_reverse()函数倒转 natcasesort...strnatcasecmp();按自然排序忽略比较字符串的数字 字符串的分割与拼接(前面数组部分一样) 1.分割 explode();把字符串分割成数组 2.拼接implode()(join());

    1.3K30

    php面试题目100及最佳答案

    在网站上GD库通常用来生成缩略图或者用来图片加水印或者网站数据生成报表。 26.面向对象编程 有两个重要的概念:类对象 类是具备某项功能的抽象模型,实际应用,还需要对类进行实例化后使用。...不能输出数组对象,只能打印简单类型(int,string) print :是语句不是函数,有返回 1 ,只能输出一个变量,不需要圆括号。...SHOW; 98.字符串函数 chr — 通过ASCII码返回指定的字符 ord — 通过指定的字符返回ASCII码 explode — 使用一个字符串分割另一个字符串 implode...— 返回数组当前的键/并将数组指针向前移动一步 next — 将数组的内部指针向前移动一位 end — 将数组的内部指针指向最后一个单元 sort — 对数组排序 rsort —...对数组逆向排序 asort — 对数组进行排序并保持索引关系 arsort — 对数组进行逆向排序并保持索引关系 ksort — 对数组按照键名排序 krsort — 对数组按照键名逆向排序

    8.3K30

    Python快速学习第一天

    1.1、如何在Python中使用字符串 a、使用单引号(') 用单引号括起来表示字符串,例如: str='this is string'; print str; b、使用双引号(") 双引号字符串与单引号字符串用法完全相同...列表+*的操作符与字符串相似。...list.sort([func]) 原列表进行排序 list.sorted([func])获取排序列表的副本 补充: 内建函数cmp(x,y) x>y返回1 x<y返回-1,相等返回0 sort()有两个可选参数...两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典由键对应的组成。字典也被称作关联数组或哈希表。...(key,default=None) get()类似, 但如果键不已经存在于字典,将会添加键并将设为default radiansdict.update(dict2) 把字典dict2的键/更新到

    3.8K50

    14万字 | 400多道JavaScript 面试题及详细答案(建议收藏)

    133 你如何检查一个字符串是否以另一个字符串开头? 134 你如何在javascript修剪字符串? 135 你如何在javascript添加一个键值? 136 ‘!...242 如何对数组的元素进行排序? 243 排序数组时 compareFunction 的目的是什么? 244 你如何反转数组? 245 你如何在数组中找到最小最大?...sort() 方法用于对数组元素进行原地排序并返回排序后的数组。...compareFunction 用于定义排序顺序。如果省略,数组元素将转换为字符串,然后根据每个字符的 Unicode 代码点进行排序。...排序规则用于一组字符串进行排序并在一组字符串进行搜索。它由区域设置参数化并了解 Unicode。

    12.7K20
    领券