我有兩個長列表。一個是名字....約翰,保羅,峽谷和林戈等x 50,000 每個人都有一個號碼。數字畢竟是按順序排列的名字。所以它就像45,32,22,65.32是Pual。 45是約翰等。我如何格式化,以便每個名字都與數字一致。如何組織兩個列表?字符串
由於
串
我有兩個長列表。一個是名字....約翰,保羅,峽谷和林戈等x 50,000 每個人都有一個號碼。數字畢竟是按順序排列的名字。所以它就像45,32,22,65.32是Pual。 45是約翰等。我如何格式化,以便每個名字都與數字一致。如何組織兩個列表?字符串
由於
串
最簡單的方法是將每個字符串分割成的陣列;大多數語言都有一個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]
假設你想要把它變成一本字典,您開始用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])
...咦? – SLaks 2010-07-01 15:48:39
你需要更具體的諾瓦克。你有兩個列表在哪裏?你使用什麼編程語言?等等 – 2010-07-01 15:49:20