Python从数组中删除括号和String引号

时间:2017-04-26 18:59:37

标签: python multidimensional-array file-handling

myArray = []
textFile = open("file.txt")
lines = textFile.readlines()
for line in lines:
    myArray.append(line.split(" "))
print (myArray)

此代码输出

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

我需要做什么才能输出

a, b, c, d

4 个答案:

答案 0 :(得分:2)

您在结果中添加listsplit会返回一个列表)。而且,指定" space"对于拆分字符不是最好的选择,因为它不会删除换行符,回车符,双空格,这会创建一个空元素。

你可以使用列表理解来实现这一点,不用参数拆分项目(所以\n自然消失了)

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

(注意with块,因此文件在退出后立即关闭,双循环到"将列表列表展平为单个列表:可以处理多个元素一行)

然后,要么打印数组的表示

print (myArray)

得到:

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

或使用逗号+空格

生成连接字符串
print(", ".join(myArray))

结果:

 a, b, c, d

答案 1 :(得分:0)

您可以执行以下操作:

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

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

如果您不希望每个角色都在自己的数组中,那么您可以这样做:

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

要打印,然后'print(','。join(myArray))

答案 2 :(得分:0)

看起来你应该使用strip()(trim空格)而不是split()(它会生成一个字符串块列表。

$processId = (Start-Process notepad -PassThru).Id
if ( Get-Process -Id $processId -ErrorAction SilentlyContinue ) {
   "Process is running"
}

然后打印(myArray)'将生成:

myArray.append(line.strip())

打印a,b,c,d'你可以使用join():

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

答案 3 :(得分: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