首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何索引类信息

如何索引类信息
EN

Stack Overflow用户
提问于 2022-01-02 03:26:28
回答 1查看 53关注 0票数 0

在尝试将数据从txt文件存储到python类时,我遇到了一个问题,我不知道如何在类中存储信息,并通过索引和数据类型检索它。在所有这些转换之后,我有n个有数据的列表。

下面是来自txt文件的示例数据:

代码语言:javascript
运行
复制
Date       Time      Latit(N)  Long(E)   Depth(km)     MD   ML   Mw    Region                                            Method
---------- --------  --------  -------   ----------    ------------    -----------                                       -------
2021.12.18 22:27:57  36.2620   28.9352       10.5      -.-  3.1  3.2   AKDENIZ                                           Quick
2021.12.18 21:53:20  35.0258   25.7753        5.0      -.-  2.7  -.-   GIRIT ADASI ACIKLARI (AKDENIZ)                    Quick
2021.12.18 21:26:37  36.9778   27.7713        3.8      -.-  1.6  -.-   GOKOVA KORFEZI (AKDENIZ)                          Quick
2021.12.18 20:35:30  37.8640   35.1760        5.4      -.-  1.5  -.-   PINARBASI-CAMARDI (NIGDE)                         Quick
2021.12.18 19:23:36  37.8505   26.7575        7.5      -.-  2.0  -.-   EGE DENIZI                                        Quick
2021.12.18 18:27:00  37.7900   32.0702        4.3      -.-  1.4  -.-   YATAGAN-MERAM (KONYA)                             Quick
2021.12.18 18:19:10  41.1435   43.9102        9.5      -.-  2.1  -.-   ERMENISTAN                                        Quick
2021.12.18 17:19:05  39.8660   41.8363       15.0      -.-  1.6  -.-   KAYABASI-KOPRUKOY (ERZURUM)                       Quick

这是一堂课:

代码语言:javascript
运行
复制
import re

class txt_data:
    def __init__(self, result):
       
       for i in result:
           
            self.date = result[i][0]
            self.time = result[i][1]
            self.latit = result[i][2]
            self.long = result[i][3]
            self.depth = result[i][4]
            self.md = result[i][5]
            self.ml = result[i][6]
            self.mw = result[i][7]
            self.region = result[i][8]
            self.method = result[i][9]
    
  
    def date(self):
        return self._date

  
    def time(self):
        return self._time

  
    def latit(self):
        return self._latit

  
    def long(self):
        return self._long

  
    def depth(self):
        return self._depth

  
    def md(self):
        return self._md

  
    def ml(self):
        return self._ml

  
    def mw(self):
        return self._mw

  
    def region(self):
        return self._region

  
    def method(self):
        return self._method     

#regex 
ptn = re.compile(
    r"^([\d.]+)\s+([\d:]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+|-\.-)\s+([\d.]+|-\.-)\s+([\d.]+|-\.-)\s+([\w\s()-]+?)\s+([\w]+[\d]+\s+\([^)]*\)|\s+[a-zA-Z]+)$")

result = []
with open("input.txt") as fic:
    fic.readline()  # header
    fic.readline()  # dash
    for line in fic:
        parts = ptn.findall(line.rstrip())
        result.append(txt_data)

下面是regex之后的数据在循环内部的“部件”中的样子:

代码语言:javascript
运行
复制
[('2021.12.03', '01:50:08', '41.1905', '33.9327', '5.0', '-.-', '1.3', '-.-', 'HUSEYINLI-(KASTAMONU)', ' Quick')]
[('2021.12.03', '01:45:31', '39.1132', '41.1728', '8.4', '-.-', '2.2', '-.-', 'BAGLIISA-KARLIOVA (BINGOL)', ' Quick')]
[('2021.12.03', '00:49:20', '37.6933', '26.0342', '5.0', '-.-', '2.0', '-.-', 'ONIKI ADALAR (MEDITERRANEAN SEA)', ' Quick')]
[('2021.12.03', '00:24:51', '37.1293', '28.6973', '11.3', '-.-', '1.4', '-.-', 'TURGUT-ULA (MUGLA)', ' Quick')]
[('2021.12.03', '00:22:08', '40.7790', '31.5120', '11.2', '-.-', '1.0', '-.-', 'KIZILAGIL-(BOLU)', 'REVISE01   (2021.12.03 00:22:17)')]
[('2021.12.03', '00:08:58', '39.8367', '41.8367', '3.3', '-.-', '0.9', '-.-', 'MARIFET-KOPRUKOY (ERZURUM)', ' Quick')]
[('2021.12.03', '00:04:24', '41.2267', '43.9693', '5.5', '-.-', '1.9', '-.-', 'GURCISTAN', ' Quick')]
[('2021.12.02', '23:49:30', '39.4655', '28.2327', '7.5', '-.-', '2.0', '-.-', 'EMIRLER-BIGADIC (BALIKESIR)', ' Quick')]
[('2021.12.02', '22:42:05', '37.0915', '28.3208', '13.6', '-.-', '0.8', '-.-', 'YENICE-(MUGLA)', ' Quick')]
[('2021.12.02', '22:29:24', '36.9605', '28.1775', '13.0', '-.-', '1.5', '-.-', 'KARACA-MARMARIS (MUGLA)', ' Quick')]

问题是如何修复我的类以将数据添加到其中并使用索引进行检索。我试过在课堂上循环,但那不能正常工作。

事先非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2022-01-02 04:33:56

只需将parts列表的第一项发送给您的类,并删除构造函数中的for循环:

代码语言:javascript
运行
复制
import re

class txt_data:
    def __init__(self, result):

        self.date = result[0]
        self.time = result[1]
        self.latit = result[2]
        self.long = result[3]
        self.depth = result[4]
        self.md = result[5]
        self.ml = result[6]
        self.mw = result[7]
        self.region = result[8]
        self.method = result[9]    

#regex 
ptn = re.compile(
    r"^([\d.]+)\s+([\d:]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+|-\.-)\s+([\d.]+|-\.-)\s+([\d.]+|-\.-)\s+([\w\s()-]+?)\s+([\w]+[\d]+\s+\([^)]*\)|\s+[a-zA-Z]+)$")

result = []
with open("input.txt") as fic:
    fic.readline()  # header
    fic.readline()  # dash
    for line in fic:
        parts = ptn.findall(line.rstrip())
        result.append(txt_data(parts[0]))
        
print(result[3].region)  # PINARBASI-CAMARDI (NIGDE)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70553417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档