私信  •  关注

Alexandru Martin

Alexandru Martin 最近创建的主题
Alexandru Martin 最近回复了
6 年前
回复了 Alexandru Martin 创建的主题 » 如何使用Python计算大文件中每个数字的每次出现次数

所以看看这个:

counts = {}

for line in open("data.txt", "r"):
    line = line.split(',')

    number_1 = None
    number_2 = None

    for line_element in line:

        try:
            number = int(line_element)
            if number_1 is None:
                number_1 = number
            else:
                number_2 = number
        except Exception:
            pass

    if number_1 and number_2:
        numbers_couple = '{},{}'.format(number_1, number_2)

        if numbers_couple in counts:
            counts[numbers_couple] += 1
        else:
            counts[numbers_couple] = 1

print(counts)

我的data.txt内容:

a,b,c,20,30,dad,glaas
fdls,cafd,erer,fdesf,2,4534
fdls,cafd,erer,fdesf,2,11

结果是:

{
   '20,30': 1, 
   '2,4534': 1, 
   '2,11': 1
}

您可以使用此结果将其写入您提到的新文件,方法是分割字典的键以获取x和y。

像这样,我已经计算了一个文件中的数对。这就是你要找的吗?请告诉我。

6 年前
回复了 Alexandru Martin 创建的主题 » python-访问类声明内的父类修饰符

我查了你所说的图书馆 Lexer 类继承元类:

class Lexer(metaclass=LexerMeta):

LexerMeta 您可以找到以下内容:

@classmethod
    def __prepare__(meta, name, bases):
        d = LexerMetaDict()

        def _(pattern, *extra):
            patterns = [pattern, *extra]
            def decorate(func):
                pattern = '|'.join(f'({pat})' for pat in patterns )
                if hasattr(func, 'pattern'):
                    func.pattern = pattern + '|' + func.pattern
                else:
                    func.pattern = pattern
                return func
            return decorate

        d['_'] = _
        d['before'] = _Before
        return d

元类用于创建类对象,然后用于实例化对象。从这个方法中我可以看到 d['_'] = _ 这个元类动态地附加了 _ 方法设置为要使用的类。

这意味着他们所做的与:

class Bar:
    @staticmethod
    def some_decorator(f):
        ...

    @some_decorator
    def some_function(self):
        ...