Итак, у меня есть список:
['x', 3, 'b']
И я хочу, чтобы результат был:
[x, 3, b]
Как я могу сделать это в python?
Если я делаю str(['x', 3, 'b'])
, я получаю один с кавычками, но мне не нужны кавычки.
Итак, у меня есть список:
['x', 3, 'b']
И я хочу, чтобы результат был:
[x, 3, b]
Как я могу сделать это в python?
Если я делаю str(['x', 3, 'b'])
, я получаю один с кавычками, но мне не нужны кавычки.
mylist = ['x', 3, 'b']
print '[%s]' % ', '.join(map(str, mylist))
Если вы используете Python3:
print('[',end='');print(*L, sep=', ', end='');print(']')
Вместо использования map
я бы рекомендовал использовать выражение генератора с возможностью join
принимать итератор:
def get_nice_string(list_or_iterator):
return "[" + ", ".join( str(x) for x in list_or_iterator) + "]"
Здесь join
является функцией-членом класса string str
. Он принимает один аргумент: список (или итератор) строк, а затем возвращает новую строку со всеми элементами, связанными в этом случае ,
.
Вы можете удалить все ненужные символы из строки, используя translate()
method с None
для аргумента table
, за которым следует строка, содержащая символы (символы), которые вы хотите удалить для аргумента deletechars
.
lst = ['x', 3, 'b']
print str(lst).translate(None, "'")
# [x, 3, b]
Если вы используете версию Python до версии 2.6, вам нужно использовать функцию string
module translate()
вместо этого, потому что возможность передать None
в качестве аргумента table
не была добавлена до Python 2.6. Использование его выглядит так:
import string
print string.translate(str(lst), None, "'")
Использование функции string.translate()
также будет работать в версии 2.6+, поэтому использование может быть предпочтительным.
Это простой код, поэтому, если вы новичок, вы должны понимать его достаточно легко.
mylist = ["x", 3, "b"]
for items in mylist:
print(items)
Он печатает все из них без кавычек, как вы хотели.
Использование только печати:
>>> l = ['x', 3, 'b']
>>> print(*l, sep='\n')
x
3
b
>>> print(*l, sep=', ')
x, 3, b
Здесь представлен интерактивный сеанс, показывающий некоторые шаги в однострочном пространстве @TokenMacGuy. Сначала он использует функцию map
для преобразования каждого элемента в список в строку (фактически, он делает новый список, а не преобразует элементы в старый список). Затем он использует строковый метод join
для объединения этих строк с ', '
между ними. Остальное - просто форматирование строк, что довольно просто. (Изменить: этот экземпляр прост, форматирование строк вообще может быть несколько сложным.)
Обратите внимание, что использование join
- это простой и эффективный способ создания строки из нескольких подстрок, гораздо более эффективный, чем выполнение, путем последовательного добавления строк к строкам, что связано с большим количеством копирования за кулисами.
>>> mylist = ['x', 3, 'b']
>>> m = map(str, mylist)
>>> m
['x', '3', 'b']
>>> j = ', '.join(m)
>>> j
'x, 3, b'
Используя .format
для форматирования строк,
mylist = ['x', 3, 'b']
print("[{0}]".format(', '.join(map(str, mylist))))
Вывод:
[x, 3, b]
Объяснение:
map
используется для сопоставления каждого элемента списка с типом string
.,
как разделитель.[
и ]
в заявлении печати, чтобы показать скобки списка.