這行是不是寫錯了@@a
應該是
vectord=0.5(屬於id=2)
不然我就看不懂了…
>
> for tid in nvector['label']:
> t=Image.objects.get(pk=tid)
> t.distance=vectord
> t.save()
>
> 此程式result:
> id=1 distance=4
> id=2 distance=0.5
> id=3 distance=3
> id=4 distance=8
>
> 可是目前遇到的問題在於id=2之distance會因為上述寫法,而得0.5,
> 但我其實是想要id=2之distance要記錄"10",也就是vectord中id=2之間最大的值,
> 但會因為我這樣寫法,而被覆蓋,
> 請問該怎麼修改這個程式,才會在相對應的id之vectord值取最大的distance紀錄呢?
> 麻煩大家了,謝謝您。
取最大值就用max()囉…
如果t.distance的初始值是None的話,那就用t.distance=max(t.distance, vectord)即可
如果不是的話就要另外處理初始值的問題
> 目標result:
> id=1 distance=4
> id=2 distance=10
> id=3 distance=3
> id=4 distance=8
>
> --
> 您已訂閱「Google 網上論壇」的「python.tw」群組,因此我們特別傳送這封郵件通知您。
> 如要在此群組張貼留言,請傳送電子郵件至 pyth...@googlegroups.com。
> 如要取消訂閱此群組,請傳送電子郵件至 pythontw+u...@googlegroups.com。
> 如需更多選項,請造訪此群組:http://groups.google.com/group/pythontw?hl=zh-TW。
2012/4/7 AndyChung <andy...@gmail.com>:
> 有個Image model裡頭屬性有id,distance,以下將寫的程式貼出,這行是不是寫錯了@@a
> vectord的值會隨著neighbours迴圈,逐漸變數字
>
> views.py片段程式:
>
> neighbours=[{'vector': [2, 0, 1, 0], 'label': '2'}....其他資料依此格式類推]
>
> for nvector in neighbours:
> vectord=10(屬於id=2)
> """經過一個for迴圈
> vectord=4(屬於id=1)
> 經過一個for迴圈
> vectord=3(屬於id=3)
> 經過一個for迴圈
> vectord=8(屬於id=4)
> 經過一個for迴圈
> vectord=2(屬於id=2)
> 經過一個for迴圈
> vectord=2(屬於id=0.5)"""
應該是
vectord=0.5(屬於id=2)
不然我就看不懂了...
>
> for tid in nvector['label']:
> t=Image.objects.get(pk=tid)
> t.distance=vectord
> t.save()
>
> 此程式result:
> id=1 distance=4
> id=2 distance=0.5
> id=3 distance=3
> id=4 distance=8
>
> 可是目前遇到的問題在於id=2之distance會因為上述寫法,而得0.5,
> 但我其實是想要id=2之distance要記錄"10",也就是vectord中id=2之間最大的值,
> 但會因為我這樣寫法,而被覆蓋,
> 請問該怎麼修改這個程式,才會在相對應的id之vectord值取最大的distance紀錄呢?
> 麻煩大家了,謝謝您。
取最大值就用max()囉...
可以先做好max value的map再塞進去
max_values={}
for ...:
max_values[tid]=max(max_values.get(tid),vectord)
先用dict來裝資料
dict.get的說明你可以看help(dict.get)
另外這裡也有點怪…
nvector['label']是字串,你確定你是要取字元?
另外這裡也有點怪...