2015-09-14 3 views
-1
>>>list = [] 
>>>stringsandnumbers = input('Enter in the values. For example, "A=3,B=2,C=1,D=5"... ').split(',') 
>>>list.append(stringsandnumbers) 
>>>list.sort() 
>>>print(list) 

[[A=3,B=2,C=1,D=5]] 

Проблема заключается в том, что он не сортирует список от min до max. Я не уверен, что расщепление/разделение было бы хорошей идеей или если есть способ просто отсортировать числа из списка? Любая помощь будет оценена по достоинству.Python: разделенные целые числа и строки в списках

+2

Вы, кажется, создания списка с одной строки в нем - как вы ожидаете, чтобы разобраться, что ?! Вам необходимо будет ** разобрать вход ** в какой-то удобный формат. – jonrsharpe

ответ

2

Думаю, вы имели в виду это,

>>> s = "A=3,B=2,C=1,D=5" 
>>> sorted(s.split(','), key = lambda m: int(m.split('=')[1])) 
['C=1', 'B=2', 'A=3', 'D=5'] 
>>> ','.join(sorted(s.split(','), key = lambda m: int(m.split('=')[1]))) 
'C=1,B=2,A=3,D=5' 
+0

Это то, что я получаю: AttributeError: объект 'list' не имеет атрибута 'split' – Edward

+0

, вы можете применить функцию split только к строке, не входящей в список. –

+0

Глупый я ... это сделал трюк. Благодарю. – Edward

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