2015-09-18 92 views
0

我遇到了可能是一個簡單修復問題,因爲它是一個相對的Applescript noob。我有三個我想重新組織的數據清單。第一個原始列表包含ID號,第二個名字和第三個狀態。例如:Applescript:將列表合併到新列表

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,「Eaten」,「Jim」},list2 = {3232,「斬首」,「Joe」}等。原始列表實際上會長得多,有數百個項目,所以我不想爲每個列表手動編碼。

我很努力地找到適用於此的有用示例,但它似乎應該很簡單!任何幫助非常感謝。

回答

0

試試這個,當然它假定所有列表包含相同數量的項目。
結果是變量​​

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 
+0

我會建議使用記錄來代替。這取決於你想要做什麼,但我想你需要知道項目x的狀態或名稱。那麼記錄屬性比順序列表更容易。 – pbell

+0

好的建議,謝謝,我會編輯帖子 – vadian

+0

優秀的建議,謝謝你們兩位。 @pbell建議我一直在考慮使用記錄。將在下週初處理這項工作,所以我會告訴你它是如何工作的! – KiwiNoob

0

列表,我覺得你的建議去做,有數百個單獨的列表中,不會對你有益。我喜歡使用「列表清單」。您可以創建像這樣:

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

set listOfLists to {} 
repeat with n from 1 to (count listNumbers) 
    set end of listOfLists to {item n of listNumbers, item n of listStatuses, item n of listNames} 
end repeat 
return listOfLists 
-- {{4456, "Eaten", "Jim"}, {3232, "Beheaded", "Joe"}, {6545, "Shot", "Steve"}, {789, "Lost", "Mike"}} 

這種方式,可以參考listOfLists的第2項第2項等