Вопрос:

распечатать полный элемент в нескольких списках

python string python-2.7 list

53 просмотра

2 ответа

183 Репутация автора

Я пытаюсь напечатать два списка, но он печатает только первую букву каждого элемента в списках;

lst1 = ['hello', 'hi', 'sup']
lst2 = ['bye', 'cya', 'goodbye']

for item in [lst1, lst2]:
    print 'Your options are: ' + ' '.join(['-{0}'.format(*x) for x in item])

Результат;

You can choose: -h -h -s
You can choose: -b -c -g

Как мне напечатать строку полностью?

Автор: user1165419 Источник Размещён: 22.08.2016 08:30

Ответы (2)


4 плюса

30994 Репутация автора

Решение

Удаление *из formatбудет работать для вас:

>>> for item in [lst1, lst2]:
...     print 'Your options are: ' + ' '.join(['-{0}'.format(x) for x in item])
... 
Your options are: -hello -hi -sup
Your options are: -bye -cya -goodbye

Пояснение : *my_listраспаковывает список. Так, строка также listиз chars, '-{0}'.format(*x)будет: '-{0}'.format(['h', 'e', 'l', 'l', 'o']). Таким образом, это просто вставить строку в 0 - й индекс ['h', 'e', 'l', 'l', 'o']т h.

Автор: Moinuddin Quadri Размещён: 22.08.2016 08:34

0 плюса

84272 Репутация автора

Альтернатива;

>>> print '\n'.join('Your options are: -%s' % ' -'.join(x) for x in (lst1, lst2))
Your options are: -hello -hi -sup
Your options are: -bye -cya -goodbye

Как это устроено

Чтобы сгенерировать строку вывода:

>>> 'Your options are: -%s' % ' -'.join(lst1)
'Your options are: -hello -hi -sup'

Чтобы сформировать полный вывод, вышеупомянутое сделано и для lst1и lst2и в сочетании с '\n'.join(...).

Автор: John1024 Размещён: 22.08.2016 08:52
Вопросы из категории :
32x32