Applescript:将列表合并到新列表中

时间:2015-09-18 15:02:22

标签: list applescript

作为一个相对的Applescript noob,我正在反对可能是一个容易解决的问题。我有三个数据列表,我想重新组织。第一个原始列表包含ID号,第二个名称和第三个状态。例如:

set listNumbers to {}
set listNumbers to {} & {4456, 3232, 6545, 789}
set listStatuses to {}
set listStatuses to {} & {"Eaten", "Beheaded", "Shot", "Lost"}
set listNames to {}
set listNames to {} & {"Jim", "Joe", "Steve", "Mike"}

我想自动提取/创建x个新列表,每个列表包含三个项目,并遵循每个列表中项目1的模式,每个列表中的项目2等等。所以我会得到类似list1 = {4456, “吃掉”,“吉姆”},list2 = {3232,“Beheaded”,“Joe”}等。原始列表实际上会更长,有几百个项目,并且会动态生成,所以我不想要为每个列表手动编写代码。

我很难找到适用于此的有用示例,但似乎它应该是直截了当的!任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

尝试这一点,当然它假定所有列表包含相同数量的项目 结果在变量resultList

set listNumbers to {4456, 3232, 6545, 789}
set listStatuses to {"Eaten", "Beheaded", "Shot", "Lost"}
set listNames to {"Jim", "Joe", "Steve", "Mike"}

set resultList to {}
repeat with i from 1 to count listNumbers
    set end of resultList to {item i of listNumbers, item i of listStatuses, item i of listNames}
end repeat

或者您可以将结果作为记录列表{name:<name>, status:<status>, number:<number>}

...
repeat with i from 1 to count listNumbers
    set end of resultList to {|number|:item i of listNumbers, status:item i of listStatuses, |name|:item i of listNames}
end repeat