看板 Python 關於我們 聯絡資訊
※ 引述《linsia (コノヤロー)》之銘言: : 新手問題: : 如果我有兩個數列 : a1 b1 c1 d1 : a2 b2 c2 d2 : 如果我想讓他們相減 : 變成 : a3 b3 c3 d3 : (a3=a2-a1) : 是要使用dictionary 還是list?? : 還是辦不到? 我想了好幾天了= = 你的問題應該是一開始的變數沒有設好 以下提供幾個方案 方案一: 改用二個list存這二個數列 也就是你的二個數列改用 a[0] a[1] a[2] a[3] b[0] b[1] b[2] b[3] 去儲存 然後 c=[b[i]-a[i] for i in range(4)] 或是 c=[] for i in range(4): c.append(b[i]-a[i]) 方案二: 如果你希望a[i],b[i],c[i],d[i]是四個數列(也就是不只到a3,可能還有a4,a5,...) 那如果只有a,b,c,d四個其實也可以直接打 如果a,b,c,d一開始就是長度3的list,可以寫成 a[3]=a[2]-a[1] b[3]=b[2]-b[1] c[3]=c[2]-c[1] d[3]=d[2]-d[1] 如果a,b,c,d的長度只有2,可以寫成 a.append(a[2]-a[1]) b.append(b[2]-b[1]) 以次類推 如果不確定a的長度: if(len(a)<3): a[3].append(a[2]-a[1]) else: a[3]=a[2]-a[1] 以此類推… 但是這樣寫太累了,可以再用一個list把a,b,c,d包起來 S=[a,b,c,d] for x in S: if(len(x)<3): x[3].append(x[2]-x[1]) else: x[3]=x[2]-x[1] 方案三: 這應該是最不該出現的情況,如果你的變數名稱已經寫死了就是 a1 b1 c1 d1 a2 b2 c2 d2 然後差值指定一定要存成a3 b3 c3 d3 其實要做的話是做得到,但是十分不建議這樣用: for x in [a,b,c,d]: vars()[x+'3']=vars()[x+'2']-vars()[x+'1'] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.113.65 ※ 編輯: mantour 來自: 61.57.113.65 (05/29 23:22) ※ 編輯: mantour 來自: 61.57.113.65 (05/29 23:25)