Re: [問題]沒頭緒的一個問題...

看板Python作者 (Apua)時間15年前 (2010/04/11 12:26), 編輯推噓4(402)
留言6則, 3人參與, 最新討論串3/5 (看更多)

04/11 01:55,
z=zip(pos,str); z.sort(lamdb key:key[0]);
04/11 01:55

04/11 01:55,
print "".join([s[1] for s in z])
04/11 01:55
幫qsort整理一下,原推應該是寫成如下(丟到編輯器會比較適合閱讀): # 以下使用python2.x的語法 str=raw_input("string:") # 假設為abc pos=raw_input("possition:") # 假設為312 z = zip(str,pos) # ^^^^^^^^^^^ # z會是一個list,它的元素是pos對應str的tuple如下: # [('a', '3'), ('b', '1'), ('c', '2')] z.sort(key= (lambda key:key[1]) ) # ^^^^^^^^^^^^^^^^^^^ # key需要一組函數做排序的條件,也就是上面標記的部份 # 而被該函數引入的key就是z的每一個元素 # 所以最後z的排序結果會依據['3','1','2']的排序結果 print "".join([s[0] for s in z]) # 將z最後排序的結果抽出來並合併 個人覺得qsort寫的方法更符合原PO提的問題 原PO的問題是「依據密碼做排序」,而這正就是zip(...).sort(key = FUNCTION)在做的事 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.28.210

04/11 14:25, , 1F
不好意思 我試了一下 跑不出來耶 是版本的問題嗎?~"~
04/11 14:25, 1F

04/11 14:26, , 2F
我用的是python3.1IDLE
04/11 14:26, 2F

04/11 14:54, , 3F
是版本問題
04/11 14:54, 3F

04/11 19:00, , 4F
謝謝apua幫忙解釋。
04/11 19:00, 4F

04/11 19:02, , 5F
p3k請加一行 z=zip(str,pos); z=tuple(zip); 把zip轉成tuple
04/11 19:02, 5F

04/11 19:19, , 6F
寫錯了,轉成list才是 l=list(z)
04/11 19:19, 6F
※ 編輯: apua 來自: 59.104.29.51 (04/12 00:18)
文章代碼(AID): #1BmKzjf_ (Python)
文章代碼(AID): #1BmKzjf_ (Python)