2017-04-26 1590 views

回答

0

你可以做到以下几点:

myArray = [[v.strip() for v in x] for x in myArray] 

这将删除所有的格式字符。

如果你不希望每个字符在自己的数组,你可以再做:

myArray = [v[0] for v in myArray] 

要打印,然后选择 '打印(',”。加入(myarray的))

1

您正在为您的结果添加listsplit返回列表)。此外,为分割字符指定“空格”并不是最佳选择,因为它不会删除换行符,回车符,创建空元素的双空格。

你可以这样使用列表理解,分裂没有论证的项目(所以\n自然消失)

with open("file.txt") as lines: 
    myArray = [x for line in lines for x in line.split()] 

(注意with块,文件一旦退出关闭做,和双循环到“变平”列表的列表转换成一个单一的列表:可以处理在一个线多于1种元素)

然后,无论是在打印阵列的表示

print (myArray) 

获得:

['a', 'b', 'c', 'd'] 

,或者你使用逗号+空格

print(", ".join(myArray)) 

结果生成一个加入字符串:

a, b, c, d 
0

看来你应该使用带()(TRIM空格)而不是split()(它会生成一串字符串的列表。

myArray.append(line.strip()) 

然后选择 '打印(myarray的)' 将产生:

['a', 'b', 'c', 'd'] 

要打印 'A,B,C,d' 你可以使用join()方法:

print(', '.join(myArray)) 
0

你可以尝试类似:

import re 
arr = [['a\n'], ['b\n'], ['c\n'], ['d']] 
arr = (", ".join(repr(e) for e in arr)) 
arr = arr.replace('\\n', '') 
new = re.sub(r'[^a-zA-Z0-9,]+', '', arr) 
print(new) 

结果:

a,b,c,d