2016-08-26 5 views
-4

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

d=["","","","","","","","","",""] 
i=0 
while(True): 
    s=input() 
    d[i]=s 
    i=i+1 
    if s=="": 
    break 

Но я не в состоянии обработать список d для получения требуемой выходной мощности. d[0] хранит Djokovic:Murray:2-6,6-7,7-6,6-3,6-1. Теперь я хочу обработать эту строку (или преобразовать ее в словарь)

Теперь я могу написать код (используя функцию str.split(",")) для расчета;

  • Количество лучших в 5 набор матчей выиграл
  • Количество лучших в 3 набора матчей выиграл
  • Количество выигранных сетов
  • Количество выигранных игр
  • Количество наборов потерял
  • Количество игр потерял
+0

Что вы хотите сказать, что не можете обработать свой список? Вы имеете в виду, что вы не можете изменить значение 'd' в вашем цикле? –

+0

Что это значит? Что именно мешает вам использовать список 'd'? –

+0

Похоже, вы ожидаете, что вход уже будет разбит на список - это не так. –

ответ

0

это то, что вы после этого?

>>> d=[] 
>>> while(True): 
... s=raw_input() 
... if s=="":break 
... temp = [s] 
... d.append(temp) 
... 
a,b,7-6,7-6,6-3 
c,d,7-4,7-6,6-2 
e,f,6-4,7-6,6-2 

>>> d 
[['a,b,7-6,7-6,6-3'], ['c,d,7-4,7-6,6-2'], ['e,f,6-4,7-6,6-2']] 

Это делает элемент списка из ввода, а затем добавляет, что список на ваш основной список d
Теперь вы должны быть в состоянии обрабатывать d

Edit:

Если вы упорно используя 2 разделителя как :, так и ,, вы делаете жизнь более трудной для себя, придерживайтесь одной!
Пересмотр простой код выше:

d=[] 
while(True): 
    s=raw_input() 
    if s=="":break 
    temp = [s] 
    d.append(temp)    #d becomes a list of lists 
for item in d:     #process individual lists in d 
    x=item[0].split(",")  # break up the list using the delimiter comma 
    for i in range(0,len(x)): #access each item in x 
     print x[i] 

Входной сигнал:
Джокович, Мюррей, 2-6,6-7,7-6,6-3,6-1
Блогс, Смит, 2- 6,6-7,7-6,6-3,6-3
Джонс, Эбернати 6-3,6-3,6-3

Выход:

Djokovic  
Murray 
2-6 
6-7 
7-6 
6-3 
6-1 
Bloggs 
Smith 
2-6 
6-7 
7-6 
6-3 
6-3 
Jones 
Abernathy 
6-3 
6-3 
6-3 
+0

D [0] хранящий «Джокович: Мюррей : 2-6,6-7,7-6,6-3,6-1 "теперь я хочу обработать эту строку (либо конвертировать в словарь), чтобы вычислить число лучших из 5 заданных совпадений. Количество лучших- из-3 набора выигранных матчей Количество выигранных наборов Количество выигранных игр Количество потерянных партий Количество проигранных игр –

+0

спасибо за ваше предложение использовать функцию ** str.split (",") **, это решило всю мою проблему в коде , Теперь я сохранил результат в словаре как pStats = {'Murray': [2,2,16,143,13,142], 'Djokovic': [3,1,13,142,16,143], 'Muguruza': [0,0,1, 12,2,15], 'Williams': [0,1,2,15,1,12]}. Теперь я хочу ** распечатать вывод в порядке убывания ранжирования **, где ранжирование соответствует критерию 1-6 в этом порядке (сравните элемент 1, если равный элемент сравнения 2, если равный элемент сравнения 3 и т. Д., Отметив, что для пунктов 5 и 6 сравнение отменено). –

+0

распечатывать следующие ..... Джокович 3 1 13 142 16 143 \ П Мюррей 2 2 16 143 13 142 \ п Уильямса 0 1 2 15 1 12 \ п Muguruza 0 0 1 12 2 15 \ n –

0

С вашей статистики кажется, разделены пробелом пробела er, вы можете использовать str.split(), чтобы отделить каждую вашу статистику в списке. здесь есть демо-версия:

stats = "Djokovic:Murray:2-6,6-7,7-6,6-3,6-1 Murray:Djokovic:6-3,4-6,6-4,6-3" 

def compile_stats(stats): 
    stats_lst = list(stats.split(" ")) # using str.split to 
    # split the string every time whitespace is found. 
    return stats_lst 


print(compile_stats(stats)) 
# output:['Djokovic:Murray:2-6,6-7,7-6,6-3,6-1', 'Murray:Djokovic:6-3,4-6,6-4,6-3'] 

Он принимает каждый стат и делает его отдельным отдельным элементом списка.

+0

d [0] хранит «Djokovic: Murray: 2-6,6-7,7-6,6-3,6-1» теперь я хочу обработать эту строку (либо преобразовать в словарь), чтобы вычислить число лучших -of-5 поставленных матчей выигран Количество выигранных комбинаций лучших из 3 Количество выигранных выигранных Количество выигранных игр Количество потерянных партий Количество проигранных игр –

+0

@kunalsharma Боюсь, я не могу с этим справиться. Ваш ** оригинальный ** вопрос был ответом, и из внешнего вида вашего комментария ваша ** оригинальная ** проблема была решена. Если вы хотите задать другой вопрос, создайте новую запись. Stack Overflow ** - это не кодирование **. Мы можем помочь, однако, с ** уже написанным кодом **. Как только вы сделали попытку, не стесняйтесь возвращаться и ставить вопрос. –

Смежные вопросы