2017-09-01 97 views
0

我已经阅读了关于删除列表中的字符“U”,但它并不在我的情况下工作:如果我使用转换列表的分割字符串表示为一个字符串

[u"[u'DUTY,", u'RHODE', u'ISLAND', u'STATE', u'ASSOCIATION', u'OF', u'FIRE', u"OF']"] 

**Expected Output** : DUTY RHODE ISLAND STATE ASSOCIATION OF FIRE OF 

list = [u"[u'DUTY,", u'RHODE', u'ISLAND', u'STATE', u'ASSOCIATION', u'OF', u'FIRE', u"OF']"] 

new_list = "%s, %s" % (list[-1], ' '.join(list[:-1])) 

Output will : u"OF'], [u'DUTY, RHODE ISLAND STATE ASSOCIATION OF FIRE FIGHTERS LINE" 

如果

next_list = [str(' '.join(filter(None, new_list)))] 
Output is: ["[u'DUTY, RHODE ISLAND STATE ASSOCIATION OF FIRE FIGHTERS LINE OF']"] 

如果:

import ast 
ast.literal_eval(' '.join(list))[0] 

Output is : u'DUTY, RHODE ISLAND STATE ASSOCIATION OF FIRE FIGHTERS LINE OF' 

感谢

+0

我想这回答你的问题。 https://stackoverflow.com/questions/1207457/convert-a-unicode-string-to-a-string-in-python-containing-extra-symbols –

+0

@KamiloVasquezCaro还有额外的u作为列表中的前缀 –

回答

1

你应该能够迅速做到这一点使用ast.literal_eval

import ast 

s = ["[u'DUTY,", 'RHODE', 'ISLAND', 'STATE', 'ASSOCIATION', 'OF', 'FIRE', "OF']"] 
out = ast.literal_eval(' '.join(s))[0] 

print(str(out)) # the str bit is redundant for python3 
'DUTY, RHODE ISLAND STATE ASSOCIATION OF FIRE OF' 
+0

使用你的方法的输出是:u'DUTY,罗德岛州消防队联合会' –

+0

'列表中还有额外的你在列表 –

+0

@SNTiwari Run'out = str(out);打印(出)' –