2010-07-01 2 views
0

У меня есть два длинных списка. Один из них - имена ... Джон, Пол, Ущелье и Ринго и т. Д. X 50 000 У каждого парня есть номер. Цифры после всех имен в порядке. SO подобно 45, 32, 22, 65. 32 Pual. 45 - это John и т. Д. Как я могу отформатировать это так, чтобы каждое имя включалось с номером.Как я могу организовать два списка? строка

Благодаря

строка

+2

... А? – SLaks

+0

Вам нужно быть более конкретным новаком. У вас есть два списка? Какой язык программирования вы используете? etc –

ответ

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}" } 

отредактирован ADD: Вот пример использования космического разделителя, и делать это в 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

+0

Также мой список выглядит так: John Paul Goorge Ringo Имена Имена Имена 43 54 65 23 12 номеров номеров чисел – novak

+0

Можете ли вы показать мне, как это сделать на питоне? – novak

1

Предполагая, что вы хотите, чтобы превратить его в словарь, и вы начинаете со списком питона (не строка используется в качестве списка):

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]) 
Смежные вопросы