s = "XXXXXXAGCCTGCCAAGCAAACTTCACTGGAGXXXXXXTGTGCGTAGCATGCTAGTAACTGCAXXXXXXTCTGAATCTTTCAGCTGCTTGTXXXXXXTGGGCCTCTCACAAGGCAGAGTGTCTTCATGGGACTTTGATATTTATTTTTGTACAACCTAAGAGGAACAAATCCTTTGACACTGACAAATTGGCTTCCATATTTTATACCTTAATCATCTCCATGTTGAATTCATTGATCAACAGTTTAAGAAAAAAAGATGTAAAAATGCTTTTAGAAAGAGAGGCAAAGTTATGCACAATAACTTCTCATGAAGTCACAGTTTGTTAAAAGTTGCCTTAGTTCACAATAAATAATTATGTATGCTCTATAATTTCAGTGA"
import re
viewed = {}
for i, _ in enumerate(s):
n = 0
while n <= (len(s)-i):
new_string = s[i:i+n]
n += 1
if len(new_string) > 1:
if new_string not in viewed:
matches = re.split(new_string, s)
counter = len(matches) - 1
if counter > 1:
viewed.update({new_string: counter})
print(viewed)
{'AA': 30,
'AAA': 10,
'AAAA': 3,
'AAAAA': 2,
'AAAAG': 2,
'AAAG': 4,
'AAAGA': 2,
'AAAGT': 2,
'AAAGTT': 2,
'AAAT': 4,
'AAC': 6,
'AACA': 2,
'AACT': 3,
'AACTT': 2,
'AACTTC': 2,
'AAG': 9,
'AAGA': 4,
'AAGAG': 2,
'AAGT': 3,
'AAGTT': 2,
'AAT': 11,
'AATA': 3,
'AATAA': 2,
'AATC': 3,
'AATT': 4,
'AC': 17,
'ACA': 9,
'ACAA': 6,
'ACAAA': 2,
'ACAAAT': 2,
'ACAAT': 2,
'ACAATA': 2,
'ACAATAA': 2,
'ACAG': 2,
'ACAGT': 2,
'ACAGTT': 2,
'ACAGTTT': 2,
'ACC': 2,
'ACCT': 2,
'ACT': 6,
'ACTG': 3,
'ACTT': 3,
'ACTTC': 2,
'AG': 24,
'AGA': 6,
'AGAA': 2,
'AGAAA': 2,
'AGAG': 3,
'AGAGG': 2,
'AGC': 4,
'AGCA': 2,
'AGG': 3,
'AGGC': 2,
'AGGCA': 2,
'AGT': 9,
'AGTG': 2,
'AGTT': 5,
'AGTTT': 2,
'AT': 29,
'ATA': 7,
'ATAA': 4,
'ATAAT': 2,
'ATAATT': 2,
'ATAT': 2,
'ATATT': 2,
'ATATTT': 2,
'ATC': 5,
'ATCA': 2,
'ATCT': 2,
'ATG': 9,
'ATGC': 4,
'ATGCT': 3,
'ATGT': 3,
'ATGTA': 2,
'ATT': 8,
'ATTG': 2,
'ATTT': 4,
'ATTTT': 2,
'CA': 29,
'CAA': 10,
'CAAA': 4,
'CAAAT': 2,
'CAAC': 2,
'CAAG': 2,
'CAAT': 2,
'CAATA': 2,
'CAATAA': 2,
'CAC': 6,
'CACA': 4,
'CACAA': 3,
'CACAAT': 2,
'CACAATA': 2,
'CACAATAA': 2,
'CACT': 2,
'CACTG': 2,
'CAG': 5,
'CAGT': 3,
'CAGTT': 2,
'CAGTTT': 2,
'CAT': 7,
'CATG': 4,
'CC': 9,
'CCA': 3,
'CCAT': 2,
'CCT': 6,
'CCTT': 3,
'CCTTA': 2,
'CT': 25,
'CTA': 3,
'CTC': 4,
'CTCA': 2,
'CTCT': 2,
'CTG': 6,
'CTGA': 2,
'CTGC': 3,
'CTT': 11,
'CTTA': 2,
'CTTC': 4,
'CTTCA': 2,
'CTTT': 4,
'CTTTG': 2,
'CTTTGA': 2,
'GA': 18,
'GAA': 6,
'GAAA': 2,
'GAAT': 2,
'GAC': 3,
'GACA': 2,
'GAG': 4,
'GAGG': 2,
'GAT': 3,
'GC': 17,
'GCA': 6,
'GCAA': 2,
'GCAAA': 2,
'GCC': 4,
'GCCT': 3,
'GCT': 6,
'GCTT': 3,
'GG': 7,
'GGA': 3,
'GGC': 4,
'GGCA': 2,
'GGG': 2,
'GT': 18,
'GTA': 5,
'GTAA': 2,
'GTC': 2,
'GTG': 3,
'GTT': 7,
'GTTA': 2,
'GTTG': 2,
'GTTT': 2,
'TA': 24,
'TAA': 10,
'TAAA': 3,
'TAAAA': 2,
'TAAC': 2,
'TAACT': 2,
'TAAG': 2,
'TAAGA': 2,
'TAAT': 3,
'TAATT': 2,
'TAC': 2,
'TAG': 4,
'TAGT': 2,
'TAT': 8,
'TATA': 2,
'TATG': 3,
'TATGC': 2,
'TATT': 3,
'TATTT': 2,
'TATTTT': 2,
'TC': 21,
'TCA': 11,
'TCAC': 4,
'TCACA': 3,
'TCACAA': 2,
'TCAG': 2,
'TCAT': 4,
'TCATG': 2,
'TCC': 3,
'TCCA': 2,
'TCCAT': 2,
'TCT': 7,
'TCTC': 3,
'TCTCA': 2,
'TCTT': 2,
'TG': 29,
'TGA': 8,
'TGAA': 3,
'TGAAT': 2,
'TGAC': 2,
'TGACA': 2,
'TGAT': 2,
'TGC': 9,
'TGCA': 2,
'TGCC': 2,
'TGCT': 4,
'TGCTT': 2,
'TGG': 4,
'TGGG': 2,
'TGT': 8,
'TGTA': 3,
'TGTT': 2,
'TT': 29,
'TTA': 9,
'TTAA': 3,
'TTAG': 2,
'TTAT': 4,
'TTATG': 2,
'TTC': 8,
'TTCA': 6,
'TTCAC': 2,
'TTCAG': 2,
'TTCAT': 2,
'TTG': 9,
'TTGA': 4,
'TTGAT': 2,
'TTGT': 3,
'TTT': 10,
'TTTA': 4,
'TTTAT': 2,
'TTTC': 2,
'TTTCA': 2,
'TTTCAG': 2,
'TTTG': 4,
'TTTGA': 2,
'TTTGT': 2,
'TTTT': 3,
'TTTTA': 2,
'XT': 3,
'XTG': 2,
'XX': 12,
'XXT': 3,
'XXTG': 2,
'XXX': 8,
'XXXT': 3,
'XXXTG': 2,
'XXXX': 4,
'XXXXT': 3,
'XXXXTG': 2,
'XXXXX': 4,
'XXXXXT': 3,
'XXXXXTG': 2,
'XXXXXX': 4,
'XXXXXXT': 3,
'XXXXXXTG': 2}
my_list = [{'a': 1}, {'a': 7}]
for element in my_list:
print(element)
result = tclient(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size
))
result = tclient.some_method(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size
))
from zm_window import Window
from zm_circle import Circle
from zm_zm import Anaconda
import unittest
import string
def make_answer(arg): # собирает строку, как в ответах
result = None
for element in arg:
subresult = ' '.join(element)
if not result:
result = subresult
else:
result = result + ', ' + subresult
result += '.'
return result
def lex(line, keywords): # функция
ret = []
lines = line.split()
for number, line in enumerate(lines):
if line in keywords:
ret.append((line, keywords[line]))
elif line in string.digits: # если цифры
ret.append((line, 'INT'))
elif line.strip().isalpha(): # если буквы
ret.append((line, 'LETTER'))
else:
ret.append((line, '?')) # если неизвестен кейворд
return ret
class TestStringMethods(unittest.TestCase): # Это тестирование функции let()
def test_lex(self):
"""
подает на вход функции строки - ключи словаря true_results,
сравнивает результат со строками - значениями этого словаря
"""
true_results = {'var one = 123': 'var VARIABLE, one LETTER, = ZNAK, 123 INT.',
'var hi = Hello world': 'var VARIABLE, hi LETTER, = ZNAK, Hello LETTER, world LETTER.',
'func Main ()': 'func MAIN WORD, Main LETTER, () PARENTS.'}
for key in true_results.keys():
self.assertEqual(make_answer(lex(line=key, keywords=KEYWORDS)), true_results[key])
if __name__ == '__main__':
KEYWORDS = {
'var': 'VARIABLE',
'=': 'ZNAK',
'==': 'EQUAL',
'>': 'GT',
'<': "LT",
'(': 'LPARENT',
')': 'RPARENT',
'()': 'PARENTS',
'class': "MAIN WORD",
'func': 'MAIN WORD'
}
unittest.main() # запускает тест