【发布时间】:2012-02-05 10:20:11
【问题描述】:
假设我有一个这样的列表:
list= [["a","123","b"],["h","435","t"],["w","234","j"]]
我需要将该列表列表的第二个成员转换为Integer,因为之后它将用作大小指示器,以便我可以按大小对列表进行排序。
我想出了一个转换函数:
charToInt c = ord (chr c)
但我不知道如何转换列表中的每个第二个成员。
【问题讨论】:
-
你想在这里实现什么?内部列表的统一性使它看起来像是某种伪装的结构。您想按第二个元素的长度进行排序的事实使这看起来更有可能。所以我想知道您是否将这些列表视为一种动态类型的结构?
-
嘿,保罗,我想要实现的是一个程序,它将在列表列表中为我提供一些文件的所有元数据,例如:
list=[["music_A","size_A","artist_A",...],["music_B","size_B","artist_B",...]...]所有元数据都来自@ 987654325@ 之后我想给用户按大小对所有数据进行排序的机会,我需要将大小转换为Int -
正如我所怀疑的,您正在尝试使用列表作为数据结构。这是一个坏主意。您需要创建一个数据结构来使用原生类型(例如 Integer 的大小)来保存您的数据,然后定义一个函数,例如 mkMetaData :: [String] -> MetaData。那么您可以拥有该数据类型的列表并按您喜欢的方式对其进行排序。
-
我明白你的意思,我会试试看,谢谢。