首页 > 解决方案 > 如何检查python中两个列表中的所有匹配项?

问题描述

我正在单词类型游戏中创建一个单词,我必须将用户输入与您可以从设置的字母中生成的单词列表进行比较,并计算匹配项。我一直试图找到这个问题的答案,但没有,我根本不擅长编码,也许它真的很简单,但我遇到了问题,请帮忙。

该代码用于我在学校的项目,它是设计一些有效的软件,我想在单词类型的游戏中创建一个单词,但是我在搜索时无法使用互联网的帮助,所以我希望有人可以回答这个问题。

import re
MW = "waterfall"
Words = "1. waterfall 2. flatware 3. lateral 4. lawfare 5. faller 6. 
falter 7. rafale 8. refall 9. relata 10. taller 11. tellar 12. wafter 
13. waller 14. wallet 15. afear 16. after 17. alate 18. aleft 19. 
alert 
20. altar 21. alter 22. areal 23. artal 24. artel 25. aware 26. farle 
27. fatal 28. fatwa 29. feart 30. fella 31. feral 32. fetal 33. fetwa 
34. flare 35. frate 36. later 37. lawer 38. ratal 39. ratel 40. reata 
41. talar 42. talea 43. taler 44. tawer 45. trawl 46. trefa 47. wafer 
48. waler 49. walla 50. water 51. wrate 52. afar 53. alae 54. alar 55. 
alef 56. alew 57. alfa 58. area 59. aret 60. arew 61. arle 62. earl 
63. 
fall 64. fare 65. farl 66. fart 67. fate 68. feal 69. fear 70. feat 
71. 
fell 72. felt 73. feta 74. flat 75. flaw 76. flea 77. flew 78. frae 
79. 
frat 80. fret 81. laer 82. lare 83. late 84. leaf 85. leal 86. lear 
87. 
leat 88. left 89. raft 90. rale 91. rata 92. rate 93. real 94. reft 
95. 
taal 96. tael 97. tala 98. tale 99. tall 100. tara 101. tare 102. tawa 
103. teal 104. tear 105. tela 106. tell 107. terf 108. tref 109. trew 
110. twae 111. twal 112. waft 113. wale 114. wall 115. ware 116. wart 
117. wate 118. weal 119. wear 120. weft 121. well 122. welt 123. wert 
124. weta 125. aal 126. aft 127. ala 128. ale 129. alf 130. all 131. 
alt 132. are 133. arf 134. art 135. ate 136. awa 137. awe 138. awl 
139. 
ear 140. eat 141. eft 142. elf 143. ell 144. elt 145. era 146. erf 
147. 
eta 
148. ewt 149. faa 150. fae 151. far 152. fat 153. faw 154. fer 155. 
fet 
156. few 157. fra 158. lar 159. lat 160. law 161. lea 162. let 163. 
lew 
164. rat 165. raw 166. ref 167. ret 168. rew 169. tae 170. tar 171. 
taw 
172. tea 173. tef 174. tel 175. tew 176. twa 177. wae 178. war 179. 
wat 
180. wet 181. aa 182. ae 183. al 184. ar 185. at 186. aw 187. ea 188. 
ef 189. el 190. er 191. et 192. fa 193. fe 194. la 195. re 196. ta 
197. 
te 198. we"
y = re.sub(r'[^\w]', ' ', Words)
W = ''.join([i for i in y if not i.isdigit()])
Draw = W.split()

print(MW)
input_string = input("Type all the words you can find in the above 
words/word, separated by a comma:\n")
A = input_string.replace(" "," ").split(",")

for A in A:
    matchCount = 0
    if A in Draw:
        matchCount += 1
print (matchCount)

def common_data(Draw, A):
    common = 0
    for x in Draw:
        for y in A:
            if x == y:
                common += 1
                print (x)

当我输入两个单词时,此代码的输出为 0,但我希望它是我输入的正确单词。

标签: python

解决方案


比较两个列表的一种方法是使用嵌套的 for 循环或 for 循环内的 for 循环。一个循环用于用户输入,另一个用于您的列表。

userlist = ["apple", "banana", etc]
yourlist = ["apple", "cat", "banana"]
counter = 0
for userword in userlist:
    for yourword in yourlist:
         if userword == yourword:
              counter = counter + 1
print(counter)

counter 是两个列表之间的匹配数量。


推荐阅读