2013-09-22 52 views
0

这里是我的代码,我想做一个条件连接,我的问题是在for循环的末尾我有所有以\n开头的变量。要删除它,我需要删除每个变量。我认为应该有一些连击方式来解决这个问题。任何建议,将不胜感激。在一个循环中的字符串连接

foo = bar = remaining = '' 
for i in ['foo', 'foo', 'hello', 'foo', 'tr', 'foo', 'bar', 'foo', 'el']: 
    if 'foo' in i: 
     foo += '\n%s' % i 
    elif 'bar' in i: 
     bar += '\n%s' % i 
    else: 
     remaining += '\n%s' % i 
foo = foo.strip() 
bar = bar.strip() 
remaining = remaining.strip() 
+0

为什么你会很难去除'''\ n'''?你自己的代码是把它放在输出变量中的东西。有几种方法可以整理字符串连接以跳过换行符。 –

+0

strip()仅仅是不够的使用加入方法 – drabo2005

+0

@HathHunnicutt我想知道一些面糊接近处理这个,我的代码是完全有用的,但我认为我已经做了一个额外的代码来处理这个问题 –

回答

6

不是建立串,建立名单和'\n'.join然后当你完成:

foos = [] 
bars = [] 
remaining = [] 
for i in ['foo', 'foo', 'hello', 'foo', 'tr', 'foo', 'bar', 'foo', 'el']: 
    if 'foo' in i: 
     foos.append(i) 
    elif 'bar' in i: 
     bars.append(i) 
    else: 
     remaining.append(i) 

foo = '\n'.join(foos) 
bar = '\n'.join(bars) 
remaining = '\n'.join(remaining) 
+0

@HeathHunnicutt:我想你错过了我的编辑 – Eric

+0

@HathHunnicutt:同时性是主观的。但是,是的,我承认这是低挂的果实,我应该第一时间得到它 – Eric

+0

Hooray join();比连续级联更有效得多 –

0
foo = '' 
bar = '' 
remaining = '' 

_list = ['foo', 'foo', 'hello', 'foo', 'tr', 'foo', 'bar', 'foo', 'el'] 

for outer in xrange(len(_list)): 
    for i, e in enumerate(_list): 

     foo += '\n%s' % _list.pop(i) if 'foo' in e else '' 
     bar += '\n%s' % _list.pop(i) if 'bar' in e else ''