Advertisement
Guest User

Untitled

a guest
Sep 21st, 2019
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. # Split string into characters
  2. def split(word):
  3. return list(word)
  4.  
  5. # Hämta ord i ordlistan, skicka till funktionen, spara matchande ord i ny lista
  6. def manage_wordlist(lista1, lista2):
  7. matching_words1 = []
  8. for w in range(len(lista1)):
  9. if try_word(lista1[w], lista2) == len(lista1[w]):
  10. matching_words1.append(lista1[w])
  11. return matching_words1
  12.  
  13. # Funktion för att köra ordet mot bokstavspoolen
  14. def try_word(ord, lista):
  15. copy_list = lista[:]
  16. matchings = 0
  17. for counter in range(len(ord)):
  18. if ord[counter] in copy_list:
  19. del copy_list[copy_list.index(ord[counter])]
  20. matchings += 1
  21. return matchings
  22.  
  23. def try_input(ord, lista):
  24. matchings = 0
  25. for counter in range(len(ord)):
  26. if ord[counter] in lista:
  27. matchings += 1
  28. return matchings
  29.  
  30. # Listor
  31. with open("svenskaOrdUTF-8.txt") as file:
  32. raw_list = file.readlines()
  33.  
  34. with open("chars.txt") as file2:
  35. letters = file2.readlines()
  36.  
  37. # Städa bort "\n" från listorna
  38. word_list = []
  39. for x in raw_list:
  40. word_list.append(x.replace("\n", ""))
  41.  
  42. allowed_letters = []
  43. for l in letters:
  44. allowed_letters.append(l.replace("\n", ""))
  45.  
  46. # Input validation
  47. u_input_ok = False
  48. while not u_input_ok:
  49. user_input = input("Enter some letters: ")
  50. user_input = user_input.lower()
  51. if try_input(user_input, allowed_letters) == len(user_input) and try_input(user_input, allowed_letters) == 9:
  52. u_input_ok = True
  53. else:
  54. print("Please use 9 allowed letters (a-ö)")
  55.  
  56. # Splittar inm. till en lista av bokstäver
  57. letter_pool = split(user_input)
  58.  
  59. # Plockar ut den magiska bokstaven
  60. magic_letter = letter_pool[(len(letter_pool) // 2)]
  61.  
  62. # List comprehension för att filtrera bort för långa/korta samt ord utan magiska bokstaven
  63. filtered_wordlist = [word for word in word_list if 3 < len(word) < 10 and magic_letter in word]
  64.  
  65. # Printar resultatet/matchningar
  66. räkn = 0
  67. for f in (manage_wordlist(filtered_wordlist, letter_pool)):
  68. räkn += 1
  69.  
  70. nine_letter_words = []
  71. found_words = []
  72. for m in (manage_wordlist(filtered_wordlist, letter_pool)):
  73. if len(m) == 9:
  74. nine_letter_words.append(m)
  75. else:
  76. found_words.append(m)
  77.  
  78. if räkn == 0:
  79. print("Inga matchningar")
  80. else:
  81. for f in found_words:
  82. print(f)
  83.  
  84. print("\nOrd som använder alla bokstäver:")
  85.  
  86. for p in nine_letter_words:
  87. print(p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement