Найти - Пользователи
Полная версия: Не получается вывести данные в обратном порядке
Начало » Центр помощи » Не получается вывести данные в обратном порядке
1
Xryst
Здраствуйте не подскажите, что не тк в моем коде:
   import sys 
   sentense = sys.argv[-1]
   for word in (sys.argv[1:])[::-1]:
  sentense += " " + word
  print sentense

Ввод даных: qwe asd zxc 123, а вывод: 123 123 zxc asd qwe

Правильный вывод:123 zxc asd qwe, и пробела в конце рядка не должно быть.
P.S. Что я не так делаю не пойму(( подскажите! Спасибо.
ajib6ept
sentense = sys.argv[-1]

Сперва идет присвоедние последнего аргумента к переменной sentense, поэтому дублируется.

import sys
sentense = ''
for word in (sys.argv[1:])[::-1]:
    sentense += " " + word
print sentense

И объединять список наверно все-таки лучше через join

import sys
print ' '.join(sys.argv[1:][::-1])
Xryst
ajib6ept
import sys
sentense = ''
for word in (sys.argv):
sentense += “ ” + word
print sentense

Простите за тупой вопрос, а как сделать, что бы не дублировалось….
Xryst
А, спасибо все я понял, вот убрать
sentense = sys.argv[-1]
…потому как он прописан в цикле
for word in (sys.argv[1:])[::-1] :
правильно размишляю??
botinag
import sys 
print ' '.join(sys.argv[1:][::-1])
ajib6ept
правильно размишляю??

Да
terabayt
botinag
>>> a = [0, 1, 2, 3, 4]
>>> a[1:][::-1]
[4, 3, 2, 1]
>>> a[:0:-1]
[4, 3, 2, 1]
Xryst
Ребята спасибо, вопрос закрыт…
import sys
sentense = ''
sentense = sys.argv[1:]
sentense.reverse()
result = sentense[0]
for word in (sentense[1:])[::-1]:
   result = result + ' ' + word
print result
TroSer
Как по мне, так предложенный вариант
import sys
print ' '.join(sys.argv[:0:-1])
выглядит симпатичнее
py.user.next
>>> import sys
>>> 
>>> def f(lst):
...     print ' '.join(lst[::-1])
... 
>>> sys.argv = ['', 'a', 'b', 'c']
>>> f(sys.argv[1:])
c b a
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB