목록 또는 목록 목록을 처리해야합니다. 나는 현재의 방법이 매우 효과적이지 않다는 것을 발견했다. 나는 일을하기위한 두 개의 분리 된 메소드를 정의하고 그것을 효과적으로 두 번 작성해야하기 때문이다. 들어오는 데이터가 목록 또는 목록 목록인지 확인한 다음 적절하게 진행하면 (일반적으로 들어오는 데이터의 각 항목에 대해 조치를 취하여 들어오는 데이터의 구조와 일치하는 목록 또는 목록을 출력하려고합니다) . 여기 처리 나의 예목록 목록이 있는지 확인하고 그에 따라 파이썬에서 반복하십시오.
if not any(isinstance(item, list) for item in keys):
userStrings = []
for key in keys[index]:
userStrings[index].extend(item.GetUserStrings().GetValues(key))
else:
userStrings = [[] for i in range(len(rhObjects))]
for index, item in enumerate(rhObjects):
for key in keys[index]:
userStrings[index].extend(item.GetUserStrings().GetValues(key))
내가 뭘 목록 목록의 목록 등이 방법은 작동하지 않습니다 경우 훨씬 더 복잡한 뭔가가 발생하면 ... 아이디어?
감사합니다.
이것은 충분히 명확하지 않습니다. 다시 시작하겠습니다.
_list = [["X","Y","Z"],["X","Y","Z",["X","Y","Z"]],["X","Y","Z"]]
_list2 = ["X","Y","Z"]
_list3 = [["X","Y","Z"],["X","Y","Z"]]
나는이 목록에서 각 개체에 간단한 기능을 수행한다하고 싶은 모든 (추가 "A : 나는리스트의 목록, 목록 또는 객체 목록의 목록도 목록이 있는지 상상 ") 또는 원래의 입력 목록의 구조와 일치하는 방식으로 완전히 새로운 객체를 만들 수 있습니다. 예 기능 :
def my_function(obj):
return obj + "A"
def my_function2(obj):
return newObj
원하는 출력 :
_newList = [["XA","YA","ZA"],["XA","YA","ZA",["XA","YA","ZA"]],["XA","YA","ZA"]]
_newList2 = ["XA","YA","ZA"]
_newList3 = [["XA","YA","ZA"],["XA","YA","ZA"]]
경우 또는
사용 my_function2 :_newList = [["newObj","newObj","newObj"],["newObj","newObj","newObj",["newObj","newObj","newObj"]],["newObj","newObj","newObj"]]
두 가지 기능을 제안 아래의 사용자처럼이 만들 수있는 방법이 있나요? 하나의 재귀? 나는 재귀에 대한 완전한 멍청한 태도를 취했다. 그리고 당신이 맨 위에서 본 첫 번째 접근법은 목록 내에서 목록을 확인하는 나의 방법 이었지만 실제로는 융통성이 없었다. 전체/모든 도움을 주시면 감사하겠습니다!
내 코드는 재귀를 사용하여 목록의 목록을 검사 할 수 있다는 것을 보여주기위한 단순한 스케치입니다. 나는 당신의 논리를 모른 채 코드를 제공 할 수 없다. 당신이 그것에 더 기대고 싶다면 재귀를 위해 제공된 링크를 체크 아웃하십시오. –
내가 질문에 추가 한 예제에서 설명 할 수 있습니까? 문자열로는 정말 간단하지만 목록은 정말 단순한 것에서 더 복잡한 것으로 다양합니다. 나는 그저 함수가 어떻게 설정되어야하는지보고 싶다. 스케치를 시도했을 때 실패했다. (무한 루프라고 생각한다.) – konrad
나는 코드를 수정했다. 그것을 줘. –