我是python的新手,给出了这个列表:
a_list=['''('string','string'),...,('string','string'), 'STRING' ''']
如何删除引号,括号和省略'STRING'以获得这样的字符串:
string string ... string
这是我所有人已经准备好的尝试:
new_list = ''.join( c for c in ''.join(str(v) for v
in a_list)
if c not in ",'()")
print new_list
答案 0 :(得分:1)
我知道另一个答案是完美的答案,但是当你想要了解更多关于字符串技术而不是使用现有的库时,这也会有效。
请注意,这是解决问题的非常糟糕方式。
a_list=['''('string','string'),...,('string','string'), 'STRING' ''']
new_list = []
for i in a_list:
j = i.replace("'",'')
j = j.replace('(','')
j = j.replace(')','')
j = j.replace(',',' ')
j = j.replace('STRING','')
j = j.strip()
new_list.append(j)
print new_list
将输出
'string string ... string string'
答案 1 :(得分:0)
如果您的字符串没有文字...
,则可以在此处使用ast.literal_eval
。这会将你的字符串转换为元组(其元素是2元组和字符串),因为它基本上是元组的字符串表示形式。在那之后,迭代元组并将其转换为您想要的形式是一件简单的事情。
>>> import ast
>>> x = '''('string','string'), ('string2','string3'), ('string','string'), 'STRING' '''
>>> y = ast.literal_eval(x); print(y)
(('string', 'string'), ('string2', 'string3'), ('string', 'string'), 'STRING')
>>> ' '.join( ' '.join(elem) if type(elem) is tuple else '' for elem in y )
'string string string2 string3 string string '