2014-04-09 2 views
-1

letter_str의 문자를 dic_key (단어의 길이와 일치하는 대시가 포함 된 dict 키 문자열 유형)에 자동으로 매핑하는 코드 조각을 작성하는 방법을 제안 할 수 있습니까? word_lst)?특정 문자를 단어 목록에 매핑

그래서 매핑은 목록에 단어 수가 아무리 많아도 같은 위치에있는 목록의 모든 단어에 문자가 나타나는 경우에만 발생합니다.

단어 목록의 모든 단어에 대해 어떤 문자도 나타나지 않으면 new_dic_key는 '----'이됩니다. word_list의 단어가 같은 길이 될 것입니다 경우이 코드 줄 것이다

word_lst = ['ague', 'bute', 'byre', 'came', 'case', 'doze'] 
dic_key = '----' 
letters_str ='abcdefghijklmnopqrstuvwxyz' 

new_dic_key = '---e' 

word_list = ['bute', 'byre'] 

new_dic_key = 'b--e' 

또는

word_list = ['drek', 'drew', 'dyes'] 

new_dic_key = 'd-e-' 
+0

귀하의 질문은 기본적으로 의사 코드입니다, 당신은 그것을 해결하려고 했습니까? –

+0

'word_list'의 모든 단어가 같은 길이입니까? – shaktimaan

답변

1

경우

덕분에 아래의 예를 참조하십시오 무엇 원하는 :

word_list = ['drek', 'drew', 'dyes'] 
cols = [] 
for i in range(len(word_list[0])): 
    cols.append([]) 

for word in word_list: 
    for i, ch in enumerate(word): 
     cols[i].append(ch) 

pattern = [item[0] if len(set(item)) == 1 else '-' for item in cols] 
print ''.join(pattern) 
d-e- 

설명 :

우리는리스트의리스트로 cols를 초기화합니다. word_list의 단어에있는 문자의 2 차원 표현을 포함합니다. 그렇지 않으면이 -을 포함,

[['d', 'd', 'd'], ['r', 'r', 'y'], ['e', 'e', 'e'], ['k', 'w', 's']] 

그래서 최종 결과 new_dic_key가 하위 목록의 모든 요소 위의 같은 문자가있는 경우에만 문자가 포함됩니다 cols를 채우는 후이는 것처럼 보이는 것입니다. 이것은 pattern에 대한 목록 이해를 사용하여 이루어집니다.

희망이 있습니다.

관련 문제