파이썬을 배우기 위해 수업을 듣고 있습니다. 우리는 목록 이해를 다루는 섹션에 있으며 예제 중 하나에서 무슨 일이 일어나고 있는지 이해하는 데 어려움을 겪고 있습니다. 무슨 일이 일어나고 있는지 이해하기 위해 다시 for 루프로 변환하려고하는데 문제가 발생했습니다.
예 : 1 이것은 FOR 루프로 잘 변환 할 수 있습니다. 출력은 동일합니다.
my_list1 = [ x * y for x in [20, 40, 60] for y in [2, 4, 6]]
print('My list 1', my_list1)
my_list2 = []
for x in [20, 40, 60]:
for y in [2, 4, 6]:
my_list2.append(x*y)
print(my_list2)
산출
내 목록 1 [40, 80, 120, 80, 160, 240, 120, 240, 360]
내 목록 2 [40, 80, 120, 80, 160, 240, 120, 240, 360]
예 2 : FOR 루프로 변환하는 데 문제가 있습니다. 내 출력이 다릅니다. 목록 내에서 출력 할 목록을 얻는 방법을 모르겠습니다. 두 번째 [] 세트는 나를 쫓아내는 것입니다. 결과적으로 목록 내에서 목록을 얻기 위해 FOR 루프로 변환 할 때 어디로 가야할지 모르겠습니다.
누군가 내가 뭘 잘못하고 있는지 설명해 줄 수 있습니까?
my_list3 = [[x * y for x in [20, 40, 60]] for y in [2, 4, 6]]
print('My list 3', my_list3)
my_list4 = []
for x in [20, 40, 60]:
for y in [2, 4, 6]:
my_list4.append([x*y])
print('My list4', my_list4)
산출
내 목록 3 [[40, 80, 120], [80, 160, 240], [120, 240, 360]]
내 목록 4 [[40], [80], [120], [80], [160], [240], [120], [240], [360]]
출력에 목록 목록이 있기를 원하기 때문에 더 복잡하다는 것을 알았습니다. my_list4에 추가하는 각 요소는 목록 자체 여야합니다.
모든 목록 이해를 제거하는 것이 할당 된 경우 한 번에 한 항목 씩 하위 목록을 작성한 다음 상위 목록에 하위 목록을 추가해야합니다. 이렇게 :
for x in [20, 40, 60]:
sublist = [] # make an empty sublist
for y in [2, 4, 6]:
sublist.append(x*y) # put a single value into the sublist
my_list4.append(sublist) # add the completed sublist onto the parent list
명확성을 위해 위의 접근 방식을 선호하지만 사전에 부모 목록에 빈 하위 목록을 추가하고 값을 추가하는 동안 계속 참조하여 임시 목록을 만드는 것을 피할 수도 있습니다.
for x in [20, 40, 60]:
my_list4.append([]) # append the empty sublist to the parent list
for y in [2, 4, 6]:
my_list4[-1].append(x*y) # use [-1] to reference the last item
# in my_list4, which is the current sublist.
귀하의 시도는 x와 y의 각 조합에 대해 하나의 요소 목록을 만들고있었습니다 (각 개별 값 주위의 대괄호가 이것을 보여줍니다).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다