Скажем, наш вклад такой ...
userinput = 'foo,bar'
Использование кода понимания списка ...
items=[x for x in userinput.split(",")]
items.sort()
print (items)
Output becomes: `['bar', 'foo']`
Однако, если мы используем ваш воссозданный код ..
userinput = userinput.split(',')
words = []
for i in range (len(userinput)):
words.append(userinput)
words.sort()
print (words)
Output becomes: `[['foo', 'bar']]
Почему это?
Когда строка userinput = userinput.split(',')
запущена, userinput
теперь становится ['foo', 'bar']
.
Следовательно, когда запускается words.append(userinput)
, то, что он фактически делает, говорит words.append(['foo', 'bar'])
, и, таким образом, вы добавляете список в список, означающий, что words = [['foo', 'bar']]
.
words.sort()
не будет сортировать вложенные списки внутри себя, поэтому ваш список не отсортирован.
Поэтому исправление заключается в добавлении каждого элемента пользовательского ввода в слова вместо добавления пользовательского ввода в виде списка в словах.
userinput = userinput.split(',')
words = []
for i in range (len(userinput)):
words.append(userinput[i])
words.sort()
print (words)
Output becomes: ['bar', 'foo']