파이썬 오류 찾아주세요..
조회수 639회
리스트를 영어단어로 구성한다음, 찾을 단어를 입력 받아 같은 것이 있으면 리스트에서 인덱스 번호를 출력하고 없으면 -1
을 출력하는 코드입니다.
예를 들어 ["apple","lime","grape","banana"]
가 있고 찾을 단어를 "a"
라고 입력하면 [0,2,3]
이렇게 출력을 해줍니다. 그런데 계속 리스트의 맨 앞의 값만 확인하네요. 그리고 리스트를 만들어 추가해야 되는데 리스트에 추가가 되지 않습니다. 도와주세요..
lista=[]
def N_find(listname,string):
for i in range (len(listname)):
if listname[i].count(string)!=0:
return lista.append(i)
else:
return(-1)
num=int(input("List element 개수입력:"))
NewList=[]
tempList=[0]
for i in range(num):
print(i,"번째")
t=input("추가할 element 입력:")
tempList=[t]
NewList=NewList+tempList
a=input("찾을 글자는?")
fin=N_find(NewList,a)
print(fin)
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
return lista.append(i) 라고 하셔서 맨 앞값만 출력하신다는 것 같은데... 한번 함수 마지막에 print()나 그런거 쓰셔서 해보세요. 만약 return때문에 그러면 함수를
lista=[] def N_find(listname,string): global lista for i in range (len(listname)): if listname[i].count(string)!=0: lista.append(i) else: return(-1) return lista
이런식으로 해보세요
-
def N_find(listname, s): ret = [] for i, word in enumerate(listname): if word.find(s) != -1: ret.append(i) return ret print(N_find(lst, 'a')) # [0, 2, 3] print(N_find(lst, 'b')) # [3] print(N_find(lst, 'e')) # [0, 1, 2]
댓글 입력