2012-11-19 3 views
4

임의로 8 개의 개별 문자를 생성하고 ranlet (임의 문자는 줄임) 목록에 할당하는 프로그램을 만들었습니다. 그런 다음 .txt 파일을 wordslist이라는 목록으로 가져옵니다. 문자의 무작위 생성과 파일로드는 모두 잘되고 있습니다.이 부분들을 개별적으로 테스트했지만, 나는 걸림돌을 때렸습니다.Python - 문자 목록을 단어 목록과 비교 하시겠습니까?

프로그램은 다음의 wordslist 목록에 ranlet 목록을 비교 hits라는 목록에 일치하는 단어를 추가하고 나는이 시도

hits 목록에 단어를 표시해야합니다 슬프게도

for each in wordslist: 
    if ranlet==char in wordslist: 
     hits.append(wordslist) 
    else: 
     print "No hits." 

print hits 

을 , 이것은 작동하지 않았다. 나는 이것에 많은 변이가있다, 그러나 모두 소용 없다. 나는이 문제에 대한 어떤 도움도 정말로 감사 할 것입니다.

+2

표시 예를 들어, 데이터 입력 및 산출. – Marcin

+0

은 말괄량이, 말과 친구 또는 어떤 종류의 코드처럼 들립니다. 어쩌면 당신은 파이썬 스크래블 구현을 검색하고 거기서 완료된 것을보아야합니다. –

답변

3

난 당신이 set.intersection 여기에서 혜택을 누릴 수 있다고 생각 : 당신이 Python에 새로운 경우

set_ranlet = set(ranlet) 
for word in word_list: 
    intersection = set_ranlet.intersection(word) 
    if intersection: 
     print "word contains at least 1 character in ran_let",intersection 

    #The following is the same as `all(x in set_ranlet for x in word)` 
    #it is also the same as `len(intersection) == len(set_ranlet)` which might 
    # be faster, but less explicit. 
    if intersection == set_ranlet: 
     print "word contains all characters in ran_let" 
+0

어떻게 개선 할 수 있는지 알려 주시면 업데이트하겠습니다. :) – mgilson

2

는, 이것이 '이해하기 쉬운'해답이 될 수 있습니다

hits = [] 
for word in wordslist: 
    if word in ranlet and word not in hits: 
     hits.append(word) 
print hits