Re: [問題] dictionary對應到多維陣列

看板Python作者 (這些年來)時間17年前 (2008/02/28 17:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/6 (看更多)
※ 引述《wawawa (哇哇哇○( ̄﹏ ̄)○)》之銘言: : ※ 引述《willhunting (這些年來)》之銘言: : : 小弟是個Python新手,關於dictionary的使用還不太熟悉。 : : 想請教一個觀念,就是如何用dictionary來達成類似多維陣 : : 列的功能。比如說我有一個東西叫ticket,ticket裡有好多 : : 種type,每個type裡還可以分為1和-1兩個class,每個class : : 裡有很多字和字出現的次數。以陣列的方式來表示是像這樣 : : 的: : : type class word : : ticket['ABC'] [1] ["hello"] = 1 ; type為ABC,class為1的ticket中 : : ; hello這個字出現一次 : : 請問要怎麼用dictionary表示出這樣的資料結構呢? : : 我想用一種類似在Perl中hash裡放hash的方式,但是試了一下 : : 發現都出錯了,該怎麼用dictionary作出這樣的功能呢?謝謝 : : 各位的指點了:) : 用 tuple 當作 key 可以符合你的需求嗎? : ticket = {} : ticket[('ABC', 1, "hello")] = 1 : print ticket[('ABC', 1, "hello")] 但這裡面所有東西都是變數,都是要給程式跑出來的,然後我之後要 能存取,用Perl來作的話會是這樣的: %ticket=(); $ticket{$type}->{'class'} = 1; $ticket{$type}->{$word} = $frequency; 用Perl的話,存取都很方便,像'class'這樣的label我也可以隨時加上去 $ticket{$type}->{$word}這樣子的寫法等於是hash中的hash,但$word是 程式在執行時看到才加入,所以有幾個word就可以加入幾個word:freq的對。 您的方法似乎無法作到這點?我只要有一個大的ticket table然後裡面可以 對到在程式跑抓出來的所有ticket資料(也就是每個ticket的type,class, 和它所有的word以及word對應的freq)。還是不很清楚怎麼用dictionary作, 感謝賜教:) -- 別人的愛情像海深,我的愛情淺。 別人的愛情像天長,我的愛情短。 別人眉來眼去,我只偷看妳一眼。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 160.39.4.62
文章代碼(AID): #17ne1Fay (Python)
文章代碼(AID): #17ne1Fay (Python)