2010-07-01 42 views
0

我有兩個長列表。一個是名字....約翰,保羅,峽谷和林戈等x 50,000 每個人都有一個號碼。數字畢竟是按順序排列的名字。所以它就像45,32,22,65.32是Pual。 45是約翰等。我如何格式化,以便每個名字都與數字一致。如何組織兩個列表?字符串

由於

+2

...咦? – SLaks 2010-07-01 15:48:39

+0

你需要更具體的諾瓦克。你有兩個列表在哪裏?你使用什麼編程語言?等等 – 2010-07-01 15:49:20

回答

1

最簡單的方法是將每個字符串分割成的陣列;大多數語言都有一個split()函數,它將給定分隔符上的字符串分開。

String[] nameArray = nameList.split(","); 
String[] numberArray = numberList.split(","); 

現在你有兩個數組,其中numberArray[247]包含在nameArray[247]的名稱去(例如)的數量。

,所以你可以,例如,循環通過他們:

for (int i=0; i<nameArray.length; i++) { 
    println(nameArray[i] + " : " + numberArray[i]; 
} 

取決於你使用的當然是什麼語言,這可能是不同的。上面的例子是java-ish;在紅寶石相當於就應該像這樣

Hash[*nameArray.zip(numberArray).flatten].each {|key, value| puts "#{key} : #{value}" } 

編輯補充: 下面是一個使用空間分隔的例子,這樣做在Python(免責聲明:我不知道Python的特別):

names = "John Paul George Ringo" 
numbers = "11 12 13 14" 
nameArray = names.split(" ") 
numberArray = numbers.split(" ") 
for i in range(len(nameArray)): 
    print nameArray[i] + ": " + numberArray[i] 
+0

我需要在Python中執行 – novak 2010-07-01 18:50:34

+0

另外我的列表看起來像這樣John Paul Goorge Ringo名稱姓名43 54 65 23 12數字數字 – novak 2010-07-01 18:51:08

+0

你能告訴我在Python中怎麼做? – novak 2010-07-01 18:58:42

1

假設你想要把它變成一本字典,您開始用Python列表(不作爲列表的字符串):

base_list = ["John", "Paul", "Joe", 4, 5, 6] 
names = [] 
numbers = [] 

for item in base_list: 
    if isinstance(item, int): 
     # Checks if the item is an instance of int. 
     # If it's a string, you can use the string's 'isdigit' function instead 
     numbers.append(item) 
    else: 
     names.append(item) 

nameNumber = {} 

for i in range(len(names)): 
    # Iterate through a range of numbers from 0 to the size of names 
    nameNumber[names[i]] = numbers[i] 

此輸出{'Paul': 5, 'John': 4, 'Joe': 6}

如果你只是想如此這般的名字重新排列列表,然後號您可以更改的最後幾行,像這樣:

nameNumber = [] 

for i in range(len(names)): 
    nameNumber.append(names[i]) 
    nameNumber.append(numbers[i])