파이썬에서 재귀를 처리하는 방법?

혈연

인터넷의 예제에 작은 기능을 스케치했지만 재귀에 문제가있었습니다 ...

def toSimpleXml(data, wrap = False):
    result = list()
    input_data_type = type(data)
    if input_data_type is list:
        for sub_element in data:
            result.append(toSimpleXml(sub_element))
        return ''.join(result)
    elif input_data_type is dict:
        for tag_name in data:
            sub_element = data[tag_name]
            result.append('<%s>' % tag_name)
            result.append(toSimpleXml(sub_element))
            result.append('</%s>' % tag_name)
        return ''.join(result)

    if wrap:
        return '<%s>%s</%s>' % (wrap, data, wrap)

    return data

data = [{'element_1': 'value_1'}, {'element_2': {'element_2_1': 'value_2_1'}}, {'element_1': 'value_1'}]
print toSimpleXml(data, 'root')

아이디어에 의해 결과는로 래핑되어야 root하지만 wrap변수는 거짓입니다 ...

Martijn Pieters

이 함수는 반환 너무 일찍 위한 wrap활동하기 시작하는. data반환하는 대신 설정 :

def toSimpleXml(data, wrap = False):
    result = list()
    input_data_type = type(data)
    if input_data_type is list:
        for sub_element in data:
            result.append(toSimpleXml(sub_element))
        data = ''.join(result)
    elif input_data_type is dict:
        for tag_name in data:
            sub_element = data[tag_name]
            result.append('<%s>' % tag_name)
            result.append(toSimpleXml(sub_element))
            result.append('</%s>' % tag_name)
        data = ''.join(result)

    if wrap:
        return '<%s>%s</%s>' % (wrap, data, wrap)

    return data

이제 if wrap성명은 실제로 도달합니다.

>>> print toSimpleXml(data, 'root')
<root><element_1>value_1</element_1><element_2><element_2_1>value_2_1</element_2_1></element_2><element_1>value_1</element_1></root>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬에서 재귀 오류를 처리하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 오류를 처리하는 방법?

분류에서Dev

재귀를 수행하는 for 루프에서 promise를 처리하는 방법

분류에서Dev

재귀를 처리하는 방법?

분류에서Dev

파이썬 "재귀"함수에서 전역 변수를 재설정하는 방법은 무엇입니까?

분류에서Dev

파이썬 객체를 재귀 적으로 jsonize하는 방법

분류에서Dev

파이썬 재귀를 최적화하는 방법

분류에서Dev

파이썬 / 장고에서 예외 처리를 개선하는 방법

분류에서Dev

파이썬 클래스 메서드에서 무한 재귀를 피하는 방법

분류에서Dev

파이썬에서 재귀 적으로 빈 디렉토리를 찾는 방법은 무엇입니까?

분류에서Dev

Hive에서 재귀 쿼리를 사용하는 방법

분류에서Dev

mysql 선택 쿼리에서 재귀를 사용하는 방법

분류에서Dev

트리에서 재귀를 사용하는 방법

분류에서Dev

재귀 적 ajax 호출을 처리하는 jquery, 브라우저에 완료를 알리는 방법

분류에서Dev

파이썬에서 이런 종류의 데이터를 사전 처리하는 방법이 있습니까?

분류에서Dev

파이썬 sh 모듈에서 "-"를 포함하는 명령을 처리하는 방법은 무엇입니까?

분류에서Dev

파이썬 sh 모듈에서 "-"를 포함하는 명령을 처리하는 방법은 무엇입니까?

분류에서Dev

(재귀 적) 쿼리를 몇 번이고 반복하는 방법?

분류에서Dev

Elm에서 재귀 HTML UI의 메시지를 처리하는 방법은 무엇입니까?

분류에서Dev

멤버 함수에서 재귀를 처리하는 방법은 무엇입니까?

분류에서Dev

재귀 프로 시저에서 오류를 처리하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 거리를 계산하는 방법

분류에서Dev

파이썬에서 SQLite SELECT 쿼리를 사용하는 방법

분류에서Dev

파이썬에서 디렉토리를 탐색하는 방법?

분류에서Dev

파이썬에서 디렉토리를 반복하는 방법

분류에서Dev

20 개 파일 일괄 처리를 1000 개 파일 폴더에서 번호가 매겨진 폴더로 재귀 적으로 이동하는 방법

분류에서Dev

파이썬에서 악센트 부호가있는 문자를 처리하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 JSON 데이터를 처리하는 방법은 무엇입니까?

분류에서Dev

GameCenter에서 지연 스파이크를 처리하는 방법

Related 관련 기사

  1. 1

    파이썬에서 재귀 오류를 처리하는 방법은 무엇입니까?

  2. 2

    파이썬에서 오류를 처리하는 방법?

  3. 3

    재귀를 수행하는 for 루프에서 promise를 처리하는 방법

  4. 4

    재귀를 처리하는 방법?

  5. 5

    파이썬 "재귀"함수에서 전역 변수를 재설정하는 방법은 무엇입니까?

  6. 6

    파이썬 객체를 재귀 적으로 jsonize하는 방법

  7. 7

    파이썬 재귀를 최적화하는 방법

  8. 8

    파이썬 / 장고에서 예외 처리를 개선하는 방법

  9. 9

    파이썬 클래스 메서드에서 무한 재귀를 피하는 방법

  10. 10

    파이썬에서 재귀 적으로 빈 디렉토리를 찾는 방법은 무엇입니까?

  11. 11

    Hive에서 재귀 쿼리를 사용하는 방법

  12. 12

    mysql 선택 쿼리에서 재귀를 사용하는 방법

  13. 13

    트리에서 재귀를 사용하는 방법

  14. 14

    재귀 적 ajax 호출을 처리하는 jquery, 브라우저에 완료를 알리는 방법

  15. 15

    파이썬에서 이런 종류의 데이터를 사전 처리하는 방법이 있습니까?

  16. 16

    파이썬 sh 모듈에서 "-"를 포함하는 명령을 처리하는 방법은 무엇입니까?

  17. 17

    파이썬 sh 모듈에서 "-"를 포함하는 명령을 처리하는 방법은 무엇입니까?

  18. 18

    (재귀 적) 쿼리를 몇 번이고 반복하는 방법?

  19. 19

    Elm에서 재귀 HTML UI의 메시지를 처리하는 방법은 무엇입니까?

  20. 20

    멤버 함수에서 재귀를 처리하는 방법은 무엇입니까?

  21. 21

    재귀 프로 시저에서 오류를 처리하는 방법은 무엇입니까?

  22. 22

    파이썬에서 거리를 계산하는 방법

  23. 23

    파이썬에서 SQLite SELECT 쿼리를 사용하는 방법

  24. 24

    파이썬에서 디렉토리를 탐색하는 방법?

  25. 25

    파이썬에서 디렉토리를 반복하는 방법

  26. 26

    20 개 파일 일괄 처리를 1000 개 파일 폴더에서 번호가 매겨진 폴더로 재귀 적으로 이동하는 방법

  27. 27

    파이썬에서 악센트 부호가있는 문자를 처리하는 방법은 무엇입니까?

  28. 28

    파이썬에서 JSON 데이터를 처리하는 방법은 무엇입니까?

  29. 29

    GameCenter에서 지연 스파이크를 처리하는 방법

뜨겁다태그

보관