Created
March 10, 2024 15:54
-
-
Save 6LYTH3/21d8496fe5a10f85733109c193735054 to your computer and use it in GitHub Desktop.
A Good Name
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
good = { | |
"วันจันทร์": { | |
"บริวาร": ["ก", "ข", "ค", "ฆ", "ง"], | |
"อายุ": ["จ", "ฉ", "ช", "ซ", "ฌ", "ญ"], | |
"เดช": ["ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ"], | |
"ศรี": ["ด", "ต", "ถ", "ท", "ธ", "น"], | |
"มนตรี": ["ศ", "ษ", "ส", "ห", "ฬ", "ฮ"], | |
"อุตสาหะ": ["ย", "ร", "ล", "ว"], | |
"มูลละ": ["บ", "ป", "ผ", "ฝ", "พ", "ฟ", "ภ", "ม"] | |
}, | |
"วันอังคาร": { | |
"บริวาร": ["จ", "ฉ", "ช", "ซ", "ฌ", "ญ"], | |
"อายุ": ["ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ"], | |
"เดช": ["ด", "ต", "ถ", "ท", "ธ", "น"], | |
"ศรี": ["บ", "ป", "ผ", "ฝ", "พ", "ฟ", "ภ", "ม"], | |
"มนตรี": ["อ", "สระ","วรรณยุกต์"], | |
"อุตสาหะ": ["ศ", "ษ", "ส", "ห", "ฬ", "ฮ"], | |
"มูลละ": ["ย", "ร", "ล", "ว"] | |
}, | |
"วันพุธ": { | |
"บริวาร": ["ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ"], | |
"อายุ": ["ด", "ต", "ถ", "ท", "ธ", "น"], | |
"เดช": ["บ", "ป", "ผ", "ฝ", "พ", "ฟ", "ภ", "ม"], | |
"ศรี": ["ย", "ร", "ล", "ว"], | |
"มนตรี": ["ก", "ข", "ค", "ฆ", "ง"], | |
"อุตสาหะ": ["อ", "สระ","วรรณยุกต์"], | |
"มูลละ": ["ศ", "ษ", "ส", "ห", "ฬ", "ฮ"] | |
}, | |
"วันพฤหัสบดี": { | |
"บริวาร": ["บ", "ป", "ผ", "ฝ", "พ", "ฟ", "ภ", "ม"], | |
"อายุ": ["ย", "ร", "ล", "ว"], | |
"เดช": ["ศ", "ษ", "ส", "ห", "ฬ", "ฮ"], | |
"ศรี": ["อ", "สระ","วรรณยุกต์"], | |
"มนตรี": ["ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ"], | |
"อุตสาหะ": ["จ", "ฉ", "ช", "ซ", "ฌ", "ญ"], | |
"มูลละ": ["ก", "ข", "ค", "ฆ", "ง"] | |
}, | |
"วันศุกร์": { | |
"บริวาร": ["ศ", "ษ", "ส", "ห", "ฬ", "ฮ"], | |
"อายุ": ["อ", "สระ","วรรณยุกต์"], | |
"เดช": ["ก", "ข", "ค", "ฆ", "ง"], | |
"ศรี": ["จ", "ฉ", "ช", "ซ", "ฌ", "ญ"], | |
"มนตรี": ["บ", "ป", "ผ", "ฝ", "พ", "ฟ", "ภ", "ม"], | |
"อุตสาหะ": ["ด", "ต", "ถ", "ท", "ธ", "น"], | |
"มูลละ": ["ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ"] | |
}, | |
"วันเสาร์": { | |
"บริวาร": ["ด", "ต", "ถ", "ท", "ธ", "น"], | |
"อายุ": ["บ", "ป", "ผ", "ฝ", "พ", "ฟ", "ภ", "ม"], | |
"เดช": ["ย", "ร", "ล", "ว"], | |
"ศรี": ["ศ", "ษ", "ส", "ห", "ฬ", "ฮ"], | |
"มนตรี": ["จ", "ฉ", "ช", "ซ", "ฌ", "ญ"], | |
"อุตสาหะ": ["ก", "ข", "ค", "ฆ", "ง"], | |
"มูลละ": ["อ", "สระ","วรรณยุกต์"] | |
}, | |
"วันอาทิตย์": { | |
"บริวาร": ["อ", "สระ","วรรณยุกต์"], | |
"อายุ": ["ก", "ข", "ค", "ฆ", "ง"], | |
"เดช": ["จ", "ฉ", "ช", "ซ", "ฌ", "ญ"], | |
"ศรี": ["ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ"], | |
"มนตรี": ["ย", "ร", "ล", "ว"], | |
"อุตสาหะ": ["บ", "ป", "ผ", "ฝ", "พ", "ฟ", "ภ", "ม"], | |
"มูลละ": ["ด", "ต", "ถ", "ท", "ธ", "น"] | |
} | |
} | |
not_good = { | |
"name": "กาลกิณี", | |
"days": { | |
"วันเสาร์ (โสณนาม)": ["ฎ", "ฏ", "ฐ", "ฑ", "ฒ", "ณ"], | |
"วันอาทิตย์ (อัชชนาม)": ["ศ", "ษ", "ส", "ห", "ฬ", "ฮ"], | |
"วันจันทร์ (ครุฑนาม)": ["อ", "ะ", "โ"], | |
"วันอังคาร (พยัคฆ์นาม)": ["ก", "ข", "ค", "ฆ", "ง"], | |
"วันพุธ (ราชสีนาม)": ["จ", "ฉ", "ช", "ซ", "ฌ", "ญ"], | |
"วันพฤหัสบดี (นาคนาม)": ["ด", "ต", "ถ", "ท", "ธ", "น"], | |
"วันศุกร์ (คชนาม)": ["ย", "ร", "ล", "ว"] | |
} | |
} | |
# # rebuild not good dict | |
# not_good_en = {} | |
# for d in not_good['days'].keys(): | |
# not_good_en[d] = [] | |
# for c in not_good['days'][d]: | |
# not_good_en[d].append(ord(c)) | |
def is_wannayut(ch): | |
if ch in [3633,3660] : # wovels | |
return False | |
elif ch >= 3629: | |
return True | |
else: | |
return False | |
def find_not_good(ch): | |
if is_wannayut(ch): # wovels | |
return "วันจันทร์ (ครุฑนาม)" | |
# for d in not_good_en.keys(): | |
for d in not_good['days'].keys(): | |
# for c in not_good_en[d]: | |
for c in not_good['days'][d]: | |
if ch == ord(c): | |
return d | |
return None | |
def find_good(n): | |
good_day_groups = {} | |
ch = ord(n) | |
for d in good.keys(): | |
for star in good[d]: | |
for c in good[d][star]: | |
if c in ["สระ","วรรณยุกต์"] and is_wannayut(ch): # wovels | |
if d not in good_day_groups: | |
good_day_groups[d] = [] | |
# if star not in good_day_groups[d]: | |
good_day_groups[d].append(star) | |
# return d,star | |
elif c not in ["สระ","วรรณยุกต์"] and ch == ord(c): | |
print(f"{n} {d} {star}") | |
if d not in good_day_groups: | |
good_day_groups[d] = [] | |
# if star not in good_day_groups[d]: | |
good_day_groups[d].append(star) | |
# return d,star | |
return good_day_groups,None | |
def merge_lists(dict1, dict2): | |
""" | |
รวม List ของค่าใน Dictionary ที่คีย์เดียวกัน โดยไม่เอาค่าซ้ำ | |
Args: | |
dict1: Dictionary แรก | |
dict2: Dictionary ที่สอง | |
Returns: | |
Dictionary ใหม่ที่รวม List ของค่าใน dict1 และ dict2 | |
""" | |
merged_dict = {} | |
for key in dict1: | |
# ดึง List ของค่าจาก dict1 และ dict2 | |
list1 = dict1.get(key, []) | |
list2 = dict2.get(key, []) | |
# รวม List โดยไม่เอาค่าซ้ำ | |
merged_list = list(set(list1 + list2)) | |
# เก็บ List ที่รวมไว้ใน Dictionary ใหม่ | |
merged_dict[key] = merged_list | |
if merged_dict: | |
return merged_dict | |
else: | |
return dict2 | |
def main(): | |
day_groups = [] | |
good_day_groups = {} | |
for n in name: | |
print(f"{n} = {ord(n)}") | |
ch = ord(n) | |
day = find_not_good(ch) | |
gday,star = find_good(n) | |
if day: | |
day_groups.append(day) | |
# print() | |
# print(f"{n} {day}") | |
if gday: | |
good_day_groups = merge_lists(good_day_groups,gday) | |
# good_day_groups = set(not_good['days'].keys()) - set(day_groups) | |
bad_groups = list(set(day_groups)) | |
good_groups = good_day_groups | |
print() | |
print("summary") | |
print("name = ",name) | |
print(f'Not good Day : {", ".join(bad_groups)}') | |
print(f'Good Day : {good_groups}\n') | |
for g in good_groups: | |
print(g,good_groups[g]) | |
name = "ธนินธ์" | |
alphet = "กขคงจอฮ" | |
""" | |
ก = 3585 | |
ฮ = 3630 | |
""" | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment