在Python中拆分项目,并附加一些项目



我想使用 :拆分器拆分第一个项目,但拒绝第二个项目,等等。

我有一个具有以下内容的文件:

# cat myfile
one:two
three:four
five:six:seven
eight:nine:ten

我尝试使用Python的是:

with open('myfile','r') as f:
    for line in f:
        for word in line.split():
            item1=word.split(':')[0]
            item2=word.split(':')[1:]
            print 'Item1: '+item1+' Item2: '+str(item2)

结果是:

Item1: one Item2: ['two']
Item1: three Item2: ['four']
Item1: five Item2: ['six', 'seven']
Item1: eight Item2: ['nine', 'ten', 'eleven']

,但我想要follwing结果:

Item1: one Item2: two
Item1: three Item2: four
Item1: five Item2: sixseven
Item1: eight Item2: nineteneleven

您可以拆分一次,str.replacestr.translate要删除:,您还应该分开一次并解开包装:

In [6]: word,rest = s.split(":",1)
In [7]: rest = rest.translate(None,":")
In [8]: word,rest
Out[8]: ('eight', 'nineten')

使用替换:

In [9]: s = "eight:nine:ten"
In [10]: word,rest = s.split(":",1)    
In [11]: rest = rest.replace(":","")    
In [12]: rest
Out[12]: 'nineten'

对于Python 3,您需要通过一个dict进行翻译:

word, rest = s.split(":",1)
rest = rest.translate({ord(":"): ""})
print(word,rest)

您也不需要在分开线上迭代:

with open("test.txt") as f:
    for line in f:
        word, rest = line.rstrip().split(":", 1)
        print('Item1: {} Item2: {}'.format(word,rest.translate(None,":"))

输出:

Item1: one Item2: two
Item1: three Item2: four
Item1: five Item2: sixseven
Item1: eight Item2: nineten

您在那里做得很好,您错过的一件事是将拆分元素连接到通过使用join完成的字符串,您可以将分离器更改为其他任何东西,例如,等。

separator = ""
for line in f.split("n"):
    for word in line.split():
        item1=word.split(':')[0]
        item2=word.split(':')[1:]
        print 'Item1: '+item1+' Item2: '+separator.join(item2)

输出:

Item1: one Item2: two
Item1: three Item2: four
Item1: five Item2: sixseven
Item1: eight Item2: nineten

最新更新