for 루프의 기능 문제

Vicente
def vol_tank(R,h):
    ht = R + 2.3*R

    if ht >= h:
        vol = 3.14 * R*R * h + 3.14 * R*R * h / 3
        print ('R: %.1f , h: %.1f - volume: %.2f' % (R,h,vol))
    elif R >= h:
        vol = 3.14 * R*R * h / 3
        print ('R: %.1f , h: %.1f - volume: %.2f' % (R,h,vol))
    else:
        print ('R: %.1f , h: %.1f - overflowing' % (R,h))

values = [[0.8, 1, 1.3, 1.5], [1, 1.25, 3.8, 4.5]]
table = [[vol_tank(R,h) for R in values[0]] for h in values[1]]

-> Table은 두 번째 목록의 모든 숫자로 '값'의 첫 번째 목록에있는 모든 숫자를 계산합니다 (예 : 0.8과 1, 0.8과 1.25, 0.8과 3.8 등 ...).

그러나 내가 원했던 것은 0.8과 1, 1과 1.25, 1.3과 3.8 및 1.5와 4.5와 같이 각각의 쌍으로만되었습니다.

곤봉

zip()다음 기능을 찾고 있습니다 .

table = [vol_tank(R, h) for R, h in zip(*values)]

그리고 vol_tank()인쇄 하는 대신 결과를 반환해야 합니다. 그렇지 않으면 값으로 table가득 찬 목록이 None됩니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사