Интервал при печати значений в словаре Python

Я хочу печатать значения из словаря без пробелов.

Это тест моего кода:

d = {}
d["char12"] = "test"
d["char22"] = "test"
print d["char12"],
print d["char22"]

вывод

test test

но мне нужно, чтобы это было:

testtest

есть ли способ удалить этот автоматический интервал?

Спасибо!


person Jose Alberto Florez Hernandez    schedule 02.02.2016    source источник


Ответы (5)


Вариант 1: объединить операторы печати

print d["char12"]+d["char22"]

Вариант 2: используйте stdout.write

import sys
...
sys.stdout.write(d["char12"]) # write without a separator
print d["char22"]
person khelwood    schedule 02.02.2016
comment
Первый работает против зерна ИМО. Второй требует импорта и многократной записи. - person mhawke; 02.02.2016
comment
использование sys.stdout.write сработало отлично, спасибо!! - person Jose Alberto Florez Hernandez; 02.02.2016

Вы можете использовать join()

d = {}
d["char12"] = "test"
d["char22"] = "test"

print ''.join((d["char12"], d["char22"]))

вывод: testtest

person Simon    schedule 02.02.2016

str.format() — один из многих вариантов. .

Из документации:

Этот метод форматирования строк является новым стандартом в Python 3, и его следует предпочесть форматированию %, описанному в разделе Операции форматирования строк в новом коде.

Вы используете это так:

print '{}{}'.format(d["char12"], d["char22"])

Это также будет работать:

print('{char12}{char22}'.format(**d))

который позволяет использовать ключи словаря в строке формата.

person mhawke    schedule 02.02.2016

В одну сторону:

import sys
d = {}
d["char12"] = "test"
d["char22"] = "test"
sys.stdout.write(d["char12"])
sys.stdout.write(d["char22"])

Вы можете использовать это!

Или вы можете использовать другой способ:

from __future__ import print_function
d = {}
d["char12"] = "test"
d["char22"] = "test"
print(d["char12"], end="")
print(d["char22"], end="")
person PRVS    schedule 02.02.2016

Чтобы напечатать значения словаря без пробелов:

print(''.join(d.values())

Словари не упорядочены, поэтому, если порядок важен, следует использовать OrderedDict.

from collections import OrderedDict

d = OrderedDict()
d["char12"] = "test"
d["char22"] = "test"

print(''.join(d.values())
person Adam Holloway    schedule 02.02.2016
comment
Нет ничего плохого в использовании join(), но, вероятно, не стоит выбирать структуру данных на основе возможности вывода ее значений без пробелов. - person mhawke; 02.02.2016