Skip to content

Instantly share code, notes, and snippets.

@6LYTH3
Created March 10, 2024 15:54
Show Gist options
  • Save 6LYTH3/21d8496fe5a10f85733109c193735054 to your computer and use it in GitHub Desktop.
Save 6LYTH3/21d8496fe5a10f85733109c193735054 to your computer and use it in GitHub Desktop.
A Good Name
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