파이썬 배열 속 배열

조회수 908회
# -*- coding: utf-8 -*-

#country = [san_fransico,cicago,montrial,new_york,washington,atlelanta,miami,mexico_city,los_angeles,bogota,saint_paaulu,Bueno,rima,santiago]
country=["san","ci","mon","new","at","wa","los","mex","mi","bo","san","bue","ri","sant"]
san=["ci"]
ci=["mon","at","los","mex","san"]
mon=["ci","new"]
new=["wa","mon"]
at=["ci","wa","mi"]
wa=["new","at","mi"]
los=["mex","ci"]
mex=["ci","los","mi"]
mi=["at","wa","mex","bo"]
bo=["san","bue","ri"]
san=["bo","bue"]
bue=["san","bo"]
ri=["bo","sant"]
sant=["ri"]

player_1 = [wa]
player_2 = [wa]

check=raw_input("위치를 설정? (start game?) [y/n]")

if check is "y":
    while 1:
        place=raw_input("어디로?(Where do you want to move?)")

        for s in player_1[0]:
            if place in s:
                player_1[0]=place
                print("player_1의 위치를"+place + "로 이동시켰습니다.(Place player_1 "+place+")")
                print("player_1의 현재 위치는"+place+"입니다.(Location of player_1 is "+place+")")

            elif place not in s:
                print("인접하지 않은 지역입니다.(Can't move)")
                break

elif check is "n":
    print("끝(end)")

else:
    print("명령이 잘못되었습니다.(command_error)")

player_1의 0번 인덱스의 정보를 place의 값으로 바꾸고 싶은데 "new"로 가는 것은 가능한데 "at","mi"로 바뀌지 않네요.

프로그램 실행 예) 현재 wa에 있으면 wa 배열 내에 있는 원소의 이름의 다른 배열로 player_1의 정보를 바꿈.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 무엇을 하려는 것인지 설명이 충분치 않아서 해당 코드가 의도하는 바를 알기 힘듭니다. 하려는 것이 무엇인지 구체적으로 적어보시기 바랍니다.

    한가지 확실한 것은 반복문, 제어문 공부를 더 해야 할 것 같습니다.

    for s in player_1[0]:
    

    위의 라인을

    for s in player_1:
    

    이렇게 수정해보세요.

    그리고 코드에 무한루프가 있어서 check 가 y로 진행중이라면

    print("끝(end)")
    

    는 수행하지 않습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)