Re: [問題] 讀取檔案的內容

看板Perl作者 (C語言)時間12年前 (2012/11/08 23:17), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串8/10 (看更多)
嗯, 以此問題來看, 我把右邊的資料當成籃子的編號 左邊的資料當成水果的總類, 每個統計表示該水果出現一次 程式如下: #1. 依據資料獲得籃子編號和水果編號 #2.a 將籃子統計到水果的總量 +1 #2.b 統計第幾個籃子中出現第幾種水果的編號 +1 #3. 將統計的結果印出 p.s. 若要印出你要的第0號水果, 把變數 $calc_all_fruit = 0 即可 程式輸出: Basket: 1, Fruit Kind: 0, amount: 2 Basket: 1, Fruit Kind: 1, amount: 1 Basket: 2, Fruit Kind: 0, amount: 2 Basket: 2, Fruit Kind: 1, amount: 1 Basket: 3, Fruit Kind: 0, amount: 1 Basket: 3, Fruit Kind: 2, amount: 1 Basket: 4, Fruit Kind: 0, amount: 1 Basket: 4, Fruit Kind: 1, amount: 1 my $baskets_ref; my $fruit_in_baskets_ref; my $calc_all_fruit = 1; foreach (@strings) { #1 if ( /(\d+)\s*(\d+)\s*/ ) { my $fruit_kind = $1; my $basket_num = $2; #2 $baskets_ref->{ $basket_num } += 1; $fruit_in_baskets_ref->{ $basket_num }->{ $fruit_kind } += 1; } } foreach my $basket_num (sort keys %{ $baskets_ref }) { foreach my $fruit_kind (sort keys %{ $fruit_in_baskets_ref->{ $basket_num }}) { #3 if ($fruit_kind eq 0 || $calc_all_fruit > 0) { print "Basket: $basket_num, Fruit Kind: $fruit_kind, amount: " . "$fruit_in_baskets_ref->{ $basket_num }->{ $fruit_kind }" . "\n" ; } } } ※ 引述《hws110 ( only you )》之銘言: : 您好, : 感謝您的回答, : 不好意思我沒有表達清楚 : : 0 1 : : 0 2 : : 0 3 : : 0 4 : : 1 1 : : 0 2 : : 2 3 : : 1 4 : : 0 1 : : 1 2 : 右列的1.2.3.4是資料的代號 : 左列是取得的資料 : 而資料中,0出現的次數是我要計算的 : 以這串資料來說 : 我想要表示的是 : 1有3個 其中0有2個 : 2有3個 其中0有2個 : 3有2個 其中0有1個 : 4有2個 其中0有1個 : 請問這樣要怎麼表示呢? : 感謝回答~ : ※ 引述《clanguage (C語言)》之銘言: : : #!/usr/bin/perl : : #1 : : my @strings = split '\n', : : " : : 0 1 : : 0 2 : : 0 3 : : 0 4 : : 1 1 : : 0 2 : : 2 3 : : 1 4 : : 0 1 : : 1 2 : : "; : : #2 : : foreach (@strings) { : : $data->{ $2 } += int($1) if /(\d+)\s*(\d+)\s*/; : : } : : #3 : : print "Number: $_, Times: $data->{ $_ } \n" : : for sort keys %{ $data }; : : 程式輸出: : : Number: 1, Times: 1 : : Number: 2, Times: 1 : : Number: 3, Times: 2 : : Number: 4, Times: 1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.144.19

11/08 23:56, , 1F
感謝您,已試過是可以抓到我要的值的,感謝~
11/08 23:56, 1F
文章代碼(AID): #1Gcyplx3 (Perl)
討論串 (同標題文章)
文章代碼(AID): #1Gcyplx3 (Perl)