python将intems中的\t和\n删除到列表中

python将intems中的\t和\n删除到列表中,python,list,Python,List,我有这样一个清单: ['\t2,6078 NM , 60,0182 T\n', '\t2,6073 NM , 60,0112 T\n', '\t2,6064 NM , 179,9998 T\n', '\t2,6078 NM , 299,9813 T\n', '\t2,6073 NM , 299,9883 T\n', '\t2,6067 NM , 60,0042 T\n', '\t2,6064 NM , 179,9998 T\n', '\n'] 它来自一个文本文件,使用readli

我有这样一个清单:

['\t2,6078 NM , 60,0182 T\n', '\t2,6073 NM , 60,0112 T\n', '\t2,6064 NM , 179,9998 T\n', '\t2,6078        NM , 299,9813 T\n', '\t2,6073 NM , 299,9883 T\n', '\t2,6067 NM , 60,0042 T\n', '\t2,6064 NM , 179,9998 T\n', '\n']
它来自一个文本文件,使用
readlines()

如何删除列表中每个项目中的
\t
\n

我尝试使用包含string的strip方法的循环,但它不起作用

该文件是:
原文是:
支腿数:7 SRU轨迹顶点: 37北纬3.99度,西经113.02度 北纬37.14.97度,西经113.02度 北纬37.14.97度,西经11.77度 37北纬3.99度,西经11.77度 37 3.99牛顿,110.51瓦 37北纬14.97度,西经110.51度 北纬37.14.97度,西经19.26度 37北纬3.99度,西经19.26度 37 3.99牛顿,18.01瓦 北纬37.14.97度,西经18.01度 北纬37.14.97度,西经16.76度 37 3.99牛顿,16.76瓦 37 3.99牛顿,15.51瓦 37北纬14.97度,西经15.51度

Distance, Bearing: 
10,9847 NM , 359,9999 T
0,9971 NM , 89,9998 T
10,9847 NM , 179,9999 T
0,9995 NM , 89,9999 T
10,9847 NM , 359,9999 T
0,9971 NM , 89,9998 T
10,9847 NM , 179,9999 T
0,9995 NM , 89,9999 T
10,9847 NM , 359,9999 T
0,9971 NM , 89,9998 T
10,9847 NM , 179,9999 T
0,9995 NM , 89,9999 T
10,9847 NM , 359,9999 T
item.strip()
工作正常:

>>> a = ['\t2,6078 NM', '60,0182 T\n', '\t2,6073 NM' , '60,0112 T\n', '\t2,6064 NM' ,     '179,9998 T\n', '\t2,6078 NM' , '299,9813 T\n', '\t2,6073 NM' , '299,9883 T\n', '\t2,6067 NM' , '60,0042 T\n', '\t2,6064 NM' , '179,9998 T\n', '\n']
>>> [i.strip() for i in a]
['2,6078 NM', '60,0182 T', '2,6073 NM', '60,0112 T', '2,6064 NM', '179,9998 T', '2,6078 NM', '299,9813 T', '2,6073 NM', '299,9883 T', '2,6067 NM', '60,0042 T', '2,6064 NM', '179,9998 T', '']
您可以使用它来过滤空的:

>>> list(filter( bool, [i.strip() for i in a]))
['2,6078 NM', '60,0182 T', '2,6073 NM', '60,0112 T', '2,6064 NM', '179,9998 T', '2,6078 NM', '299,9813 T', '2,6073 NM', '299,9883 T', '2,6067 NM', '60,0042 T', '2,6064 NM', '179,9998 T']
只需使用
replace()
函数:

for element in list:
    x = element.replace('\t','')
    x = x.replace('\n','')

\t
介于两者之间的情况下,这将优于
strip()

混淆可能在于
strip
的功能,而不是循环。(这就是为什么你应该说出你已经尝试过的,这样我们才能更好地理解困惑是什么。)

字符串是不可变的(即不能更改),因此使用
.strip()
返回更改的字符串,而不是修改原始字符串


(另外,尝试使用列表理解来生成新列表,而不是使用for循环来修改现有列表。)

正如@furas所说,这看起来像一个

但是,假设您有文本文件data.txt,您想读取:

e、 g:

26078纳米、600182纳米、26073纳米、600112纳米、26064纳米、1799998纳米 T、 26078纳米,2999813纳米,26073纳米,2999883纳米,26067纳米 ,600042吨,26064纳米,1799998吨

你可以做:

data = []
with open("data.txt", "rb") as data_file:
    for lines in data_file:
        data.append(lines.strip().split("\t")) # or whatever your separator is

更好地显示或显示原始文本文件-也许可以在读取文件时执行。您尝试了什么,以及它到底是如何工作的?不是
strip方法
,而是函数
strip()
它看起来像某个CSV文件-也许最好使用模块
CSV
,它读取所有文件并拆分为行和列。原始文本是: