Coincidencia de texto simple de Python

Devuelve la línea coincidente actual y el último texto comprobado cuando se encuentra una coincidencia

from collections import deque


def serach(lines, pattern, history=5):
    prelines = deque(maxlen=history)
    for line in lines:
        if pattern in line:
            yield line, prelines
            prelines.append(line)


if __name__ == '__main__':
    i=0
    with open(r"python.txt") as f:
        for line, prelines in serach(f, "python", 5):
            for pline in prelines:
                i+=1
                print(line, end="")
                print(i)

Agregar cola simple: deque

Encuentre los N elementos más grandes o más pequeños en la colección: heapq, la longitud se puede especificar

import heapq
nums=[1,3,324,24,123,-1,45,234,65,53]
print(heapq.nlargest(3,nums))
print(heapq.nsmallest(3,nums))

Clasificación de matrices:

import heapq
nums=[3,4,5,1,2,7,0]
heap=list(nums)
heapq.heapify(heap)
print(heap)

Array sorting 2: sort cambia la matriz original,,, sorted no cambia la matriz original

nums=[3,4,5,1,2,7,0]
nums.sort()
print(nums)
nums=[3,4,5,1,2,7,0]
nums_2=sorted(nums)
print(nums_2)
print(nums)

Priorización personalizada:

import heapq
class PriorityQueue:

    def __init__(self):
        self._queue = []
        self._index = 0

    def push(self,item,priority):
        heapq.heappush(self._queue,(-priority,self._index,item))
        self._index += 1

    def pop(self):
        return heapq.heappop(self._queue)[-1]

class Item:
    def __init__(self,name):
        self.name=name
    def __repr__(self):
        return "ITEM({!r})".format(self.name)

if __name__ == '__main__':
    q=PriorityQueue()
    q.push(Item("foo"),2)
    q.push(Item("bar"), 1)
    q.push(Item("foo"), 4)
    print(q.pop())

Segmentación de caracteres personalizados: re.spilt() es más flexible

import re

line = "asdf ghhh; afed ,fejk, foo"
print(re.split(r"[;,\s]\s*,*", line))

Encuentre archivos que comiencen con un carácter determinado:

import os
filenames = os.listdir(".")
print(filenames)
print([name for name in filenames if name.startswith("p")])
choices=["http","https"]
url="http:www.baidu.com"
if url.startswith(tuple(choices)):
    print(url)
else:print("no")

Texto de búsqueda que no distingue entre mayúsculas y minúsculas:

import re
text="UPPER PYTHON,lower python,Mixed python"
print(re.findall("python", text, re.IGNORECASE))

reemplazar reemplazar texto:

s="--======hello world--- \n"
s2=s.replace("-", "")
print(s2.replace("=", ""))

Leer archivo de texto txt:

with open(r"python.txt") as f:
    lines=(line.strip() for line in f)
    for line in lines:
        print(line)

Alinee el texto a la izquierda y a la derecha y agregue caracteres específicos:

text="hello world"
print("=",text.rjust(20))
print(text.ljust(20),"===")
print(text.center(20,"*"))
#居中对齐^,左对齐<,居中对齐…^
print(format(text,"=^20s"))
#自定义格式对齐
print('{:>10s} {:>10s}'.format("hello", "world"))

Mantenga dos decimales:

x=1.2645
print(format(x, ".2f"))

Combinación de cadenas:

part=["wo","shi","bobo"]
# " ,"中可以放任意符号
x=" ".join(part)
print(x)

Concatenación de cadenas personalizadas: formato

a="wo shi"
b="bobo"
print(a+" "+b)
print("{} {}".format(a,b))

Utilice iteradores para realizar la concatenación al convertir datos en cadenas:

data=["acme",50,91]
print("".join([str(i) for i in data]))

El uso de aleatorio:

Elija elementos al azar de una secuencia:

values=[2,3,4,1,5,2,1,78]
import random

print(random.choice(values))
print(random.sample(values, 3))
#原地洗牌
random.shuffle(values)
print(values)

#随机数:
print(random.randint(0, 100))

##0--1之间的浮点随机数
print(random.random())

Conversión de tiempo básica: datatime timedelta

from datetime import timedelta
a=timedelta(days=2,hours=6)
b=timedelta(hours=4)
c=a+b
print(c.days)
print(c.seconds)

Supongo que te gusta

Origin blog.csdn.net/weixin_42435798/article/details/125126049
Recomendado
Clasificación