仅从Python列表中的字符串中提取数值

时间:2017-01-06 19:05:56

标签: python

嗨我想要做的是从某个列表项中的字符串中仅提取数字但是结果用方括号[]打印。如何删除它们? 我得到的结果是[2000]而不是2000。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#opening txt file to extract data
import io

with io.open("testmodi.txt", "r", encoding="cp1250") as file:
     ocr_results = [line.strip() for line in file]

#spliting into list     
for line in ocr_results:
    print("[" + line + "]")



class overeview_mth:
 def __init__(self):
    self.closest_string = "Opis"
    self.distance_between_closest_string_and_matching_index = + 1
    self.every_matching_index_list_within_ocr_results = [i for i, x in enumerate(ocr_results) if x == self.closest_string]
    self.number_of_string_occurence_within_ocr_results = len(self.every_matching_index_list_within_ocr_results)
    self.matching_index = int(self.every_matching_index_list_within_ocr_results[self.number_of_string_occurence_within_ocr_results -1] + self.distance_between_closest_string_and_matching_index)



#for testing
target_index = overeview_mth()

print([int(s) for s in ocr_results[(target_index.matching_index)].split() if s.isdigit()])

1 个答案:

答案 0 :(得分:0)

如果你想要单独打印每个列表值,你需要将它们从列表中取出,正如Juanpa建议的那样。代码将是这样的,适应你的:

for s in ocr_results[(target_index.matching_index)].split():
    if s.isdigit:
        print (int(s))

这对你有用吗?您原来的打印做了一些可爱的额外工作,将所有结果放入列表中,但这似乎并不是您最终需要的。