Python从数组中删除括号和字符串引号
问题描述:
myArray = []
textFile = open("file.txt")
lines = textFile.readlines()
for line in lines:
myArray.append(line.split(" "))
print (myArray)
此代码输出Python从数组中删除括号和字符串引号
[['a\n'], ['b\n'], ['c\n'], ['d']]
什么会我需要做,使之输出
a, b, c, d
答
你可以做到以下几点:
myArray = [[v.strip() for v in x] for x in myArray]
这将删除所有的格式字符。
如果你不希望每个字符在自己的数组,你可以再做:
myArray = [v[0] for v in myArray]
要打印,然后选择 '打印(',”。加入(myarray的))
答
您正在为您的结果添加list
(split
返回列表)。此外,为分割字符指定“空格”并不是最佳选择,因为它不会删除换行符,回车符,创建空元素的双空格。
你可以这样使用列表理解,分裂没有论证的项目(所以\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
答
看来你应该使用带()(TRIM空格)而不是split()(它会生成一串字符串的列表。
myArray.append(line.strip())
然后选择 '打印(myarray的)' 将产生:
['a', 'b', 'c', 'd']
要打印 'A,B,C,d' 你可以使用join()方法:
print(', '.join(myArray))
答
你可以尝试类似:
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