Python:打印列表中每个项目的前两个字符。 (没有空格)

时间:2014-11-14 23:15:04

标签: python python-2.7 split

到目前为止

代码:

fullname = "John Doe"
namelist = fullname.split()
for word in namelist:
    print word[:2].lower(),

输出:

jo do

我希望它输出:

jodo

欢迎任何和所有建议:)

4 个答案:

答案 0 :(得分:4)

逗号创建一个空格。尝试创建列表理解并将其与空字符串连接:

>>> print "".join(word[:2].lower() for word in namelist)
jodo

了解它如何以较小的步骤工作:

>>> firsts = [word[:2].lower() for word in namelist]
>>> firsts
['jo', 'do']
>>> print "".join(firsts)
jodo

答案 1 :(得分:2)

print"魔术逗号"总是插入空格,所以你不能这样做。

您有三种选择:

  1. Join首先将字词翻译成字符串,然后打印该字符串:print ''.join(word[:2].lower() for word in namelist)
  2. Write直接发送到stdout,而不是使用printsys.stdout.write(word[:2].lower())
  3. 使用Python 3-style print可以以这种方式执行操作。首先,代码顶部的from __future__ import print_function。然后,print(word[:2].lower(), end='')

答案 2 :(得分:0)

>>> fullname = "John Doe"
>>> words = fullname.lower().split()
>>> words
['john', 'doe']
>>> print("".join(x[:2] for x in words))
jodo

[:2]选择前两个字母。 lower将它们转换为小写。使用+可以连接字符串。

python 2.x:

>>> print "".join(x[:2] for x in words)

答案 3 :(得分:0)

print function from Python 3有一个参数sep(对于" separator"),可以设置为空字符串。使用它并使用*运算符指定传入可变数量的参数:

from __future__ import print_function
fullname = "John Doe"
words = (word[:2].lower() for word in fullname.split())
print(*words, sep='')