2014-07-07 3 views
1

Эй, я написал код python (python 2.7.3) с несколькими списками, но когда я пытаюсь их распечатать, они всегда имеют пробел. Я хочу печатать список в непрерывном режиме, но я не могу этого сделать. У меня есть один список, который имеет целочисленные значения и другие с символом.печать нескольких списков в python

Например: list1 (целочисленный список имеет 123) и list2 (список символов имеет ABC).

Желаемая Выход: ABC123 Что я получаю: ABC 123

Что я сделал:

print "".join(list2),int("".join(str(x) for x in list1)) 

Любое предложение, что я делаю не так?

ответ

0

Попробуйте объединить два списка, которые вы хотите во время печати. Используйте «+» вместо «,». Здесь 'int' даст ошибку, поскольку вы можете объединить только строки. Так что попробуйте,

print "".join(list2)"".join(str(x) for x in list1) 
-1

print автоматически добавляет пробел между запятыми.

Вы можете использовать новую функцию печати:

from __future__ import print_function 
print("".join(list2),int("".join(str(x) for x in list1)), sep="") 

См docs.

Примечание: Эта функция обычно не доступен как встроенный, так как имя print признается заявление для печати. Чтобы отключить заявления и использовать функцию print(), используйте это будущее заявление на в верхней части модуля

+1

OP использует Python 2.7 –

1

Пространство происходит от print заявления. Он автоматически вставляет пробел между элементами, разделенными запятой. Я полагаю, вам не нужно скрывать конкатенированную строку в целое число, затем вы объединяете строки из join и печатаете их как единое целое.

print "".join(list2)+"".join(str(x) for x in list1)

В качестве альтернативы вы можете переключиться на print функции Python3, а также использовать его переменной sep.

from __future__ import print_function 
letters=['A','B','C'] 
nums=[1,2,3] 
print("".join(letters),int("".join(str(x) for x in nums)), sep="") 
+1

Потому что я покинул 'INT («». Присоединиться (ул (х) при х в list1)', поэтому он не может быть сцеплены. Я удалил его. Он должен работать. – luk32

+0

Вы правы, этого не замечали.В любом случае, downvoters всегда должны оставлять комментарий вместо того, чтобы вы догадывались, что не так ... –

0

, является то, что добавление пространства, так как вы печатаете две вещи, строка «ABC» и целое число 123. Попробуйте использовать +, который непосредственно добавляет две строки вместе, так что вы можете напечатать строку «ABC123»

>>> list1=[1,2,3] 
>>> list2=['A','B','C'] 
>>> print "".join(list2),int("".join(str(x) for x in list1)) 
ABC 123 
>>> print "".join(list2)+"".join(str(x) for x in list1) 
ABC123 
3
l = ["A","B","C"] 
l2 = [1,2,3] 
print "".join(l+map(str,l2)) 
ABC123 

map бросает все ints к str, это то же самое, как делают [str(x) for x in l2].

Смежные вопросы