2014-04-27 85 views
0

我想獲取2D列表並添加一個用戶給定的編號到每個子列表的第一個編號,並使子列表的第二個編號輸出。然後利用單獨的功能打印整個2D列表。到目前爲止,這是我所能解決的。我無法弄清楚如何讓索引與循環一起工作,所以我還沒有把顯示功能放進去,因爲我無法獲得正確的輸出。任何幫助是極大的讚賞!我使用Python 3.3在Python中的2D列表操作

ROWS = 5 
COLS = 2 

def main(): 

    num1 = int(input('Type a whole number and press ENTER: ')) 

    values = [[10, 0], 
       [13, 0], 
       [36, 0], 
       [74, 0], 
       [22, 0]] 

    for r in range(ROWS): 
     add = values[0] + num1 
     for c in range(COLS): 
      c = add 

    print(c) 
    input('press enter to continue') 

main() 

回答

1

沒有與您的電流回路的幾個問題:

for r in range(ROWS): # r is assigned to values 0 to 4 in turn (but never used) 
    add = values[0] + num1 # TypeError - can't add integer to (sub-)list 
    for c in range(COLS): # c is assigned to values 0 to 1 in turn 
     c = add # c is reassigned to add's value 

這不會嘗試更新列表,並使用不必要的硬編碼值(ROWSCOLS)。最小的解決方法是:

for r in range(ROWS): 
    add = values[r][0] + num1 # note [r] 
    for c in range(COLS): 
     values[r][c] = add 

但更整潔是:

for row in values: 
    add = row[0] + num1 
    for index in range(len(row)): 
     row[index] = add 

這將更新所有的值與第一值加上用戶的整數。要在開始時保留第一個整數,請使用range(1, COLS)/range(1, len(row))