我在Python中删除不需要的字符时遇到了一些问题。 以下代码是从文件中提取的(尽管\ rn \ n []'字符不包含在文件中。)
我想删除上面列出的所有不必要的字符,以便我只有数字和文本,然后将这些写入另一个文件。我尝试了很多方法,比如line.strip,但没有一种方法可以工作。
以下是我现在正在写文件的方式;
product = str(product)
f.write(product)
这是结果
['34512340', 'Plain Brackets', '0.5\r\n']
如果有人能用简单的语言解释我需要添加什么来删除不必要的字符,我将非常感激。感谢
答案 0 :(得分:0)
以下是一个例子:
possibles = [ list of color dicts here ]
match_cache = { }
def color_comparison( pixel, possibles ):
closest_distance = INFINITY
closest_possible = 0
for possible in possibles:
d = color_distance( pixel, possible )
if d < closest_distance:
closest_distance = d
closest_possible = possible
hash = pixel.makeHash()
match_cache[hash] = closest_possible
return closest_possible
def image_convert( image ):
output = []
for pixel in image:
hash = pixel.makeHash()
if hash in match_cache:
output.append( match_cache[hash] )
else:
new_color = color_comparison( pixel, possibles )
output.append( new_color )
return output
答案 1 :(得分:0)
只是为了一些变化:
list(map(lambda x:str(x).rstrip('\r\n'),['34512340', 'Plain Brackets', '0.5\r\n']))
我非常喜欢在将逻辑应用于列表中的所有项目时使用内置函数映射。只需要一条线而不是循环。表现明智不确定它是如何堆积起来的我从来没有处理过足够大的列表,因此我更喜欢一个班轮。
Map将函数作为一个参数,然后将列表或可迭代类型作为第二个参数,并将该函数应用于列表中的所有项。我传递了一个lambda函数声明,只是为了使它更简洁。
答案 2 :(得分:0)
#list of lines
lines = ['34512340', '0.5\r\n', 'Plain Brackets'];
#looping through the whole list
for i in range(len(lines)):
#stripping unwanted characters \n and \r from each line
lines[i] = lines[i].rstrip('\n').rstrip('\r')
#printing the line without the unwanted characters
print lines[i]
输出:
34512340
0.5
Plain Brackets