2010-07-01 3 views
0

J'ai deux longues listes. L'un est des noms .... John, Paul, Gorge, et Ringo etc x 50 000 chaque gars a un numéro. Les chiffres sont après tous les noms dans l'ordre. SO c'est comme 45, 32, 22, 65. 32 est Pual. 45 est John etc. Comment puis-je formater ceci pour que chaque nom soit associé au nombre.Comment puis-je organiser deux listes? string

Merci

chaîne

+2

... Hein? – SLaks

+0

Vous devrez être plus précis novak. Vous avez deux listes où? Quel langage de programmation utilisez-vous? etc etc –

Répondre

1

plus simple est de diviser chaque chaîne en un tableau; la plupart des langages ont une fonction split() qui sépare une chaîne sur un délimiteur donné.

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

Maintenant vous avez deux tableaux, où numberArray[247] contient le numéro qui va avec le nom nameArray[247] (par exemple).

Vous pouvez, par exemple, la boucle à travers eux:

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

Il peut être différent en fonction de la langue que vous utilisez, bien sûr. Les exemples ci-dessus sont java-ish; en ruby ​​l'équivalent pourrait être quelque chose comme

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

RÉVISÉ À AJOUTER: Voici un exemple en utilisant un séparateur d'espace, et faire en Python (disclaimer: Je ne sais pas Python en particulier):

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

J'ai besoin de le faire en python – novak

+0

Aussi ma liste ressemble à ceci John Paul Goorge Ringo Noms Noms Noms 43 54 65 23 12 numéros chiffres numéros – novak

+0

Pouvez-vous me montrer comment faire à cela en python? – novak

1

en supposant que vous voulez transformer en un dictionnaire et vous commencez une liste python (pas une chaîne utilisée comme une liste):

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] 

Ce sorties {'Paul': 5, 'John': 4, 'Joe': 6}

Si vous voulez juste réordonner votre liste il va nom alors vous pouvez nombre modifier les dernières lignes comme ceci:

nameNumber = [] 

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