fork download
  1. import re
  2.  
  3. mapping = {
  4. 0: [127,136,145,190,235,280,370,389,460,479,569,578,118,226,244,299,334,488,668,677,0,550],
  5. 1: [128,137,146,236,245,290,380,470,489,560,678,579,119,155,227,335,344,399,588,669,100,777],
  6. 2: [129,138,147,156,237,246,345,390,480,570,679,589,110,228,255,336,499,660,688,778,200,444],
  7. 3: [120,139,148,157,238,247,256,346,490,580,670,689,166,229,337,355,445,599,779,788,300,111],
  8. 4: [130,149,158,167,239,248,257,347,356,590,680,789,112,220,266,338,446,455,699,770,400,888],
  9. 5: [140,159,168,230,249,258,267,348,357,456,690,780,113,122,177,339,366,447,799,770,500,555],
  10. 6: [123,150,169,178,240,259,268,349,358,457,367,790,114,277,330,448,466,556,880,899,600,222],
  11. 7: [124,160,179,250,269,278,340,359,368,458,467,890,115,133,188,223,377,449,557,566,700,999],
  12. 8: [125,134,170,189,260,279,350,369,378,459,567,468,116,224,233,288,440,477,558,990,800,666],
  13. 9: [126,135,180,234,270,289,360,379,450,469,117,478,568,144,199,225,388,559,577,667,900,333],
  14. }
  15.  
  16. def check_mapping(val, mapping):
  17. for group, vals in mapping.items():
  18. if val in vals:
  19. return group
  20. return None
  21.  
  22. messages = [
  23. "560-1X490-3",
  24. "238-3X458-7",
  25. "490-aaaaa-a",
  26. ]
  27.  
  28. for msg in messages:
  29. nums = list(map(int, re.findall(r'\d+', msg)))
  30. print(f"Message: {msg}")
  31. for n in nums:
  32. group = check_mapping(n, mapping)
  33. print(f" {n} -> group {group}")
Success #stdin #stdout 0.12s 15488KB
stdin
Standard input is empty
stdout
Message: 560-1X490-3
  560 -> group 1
  1 -> group None
  490 -> group 3
  3 -> group None
Message: 238-3X458-7
  238 -> group 3
  3 -> group None
  458 -> group 7
  7 -> group None
Message: 490-aaaaa-a
  490 -> group 3