• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            鍵盤上的舞者

            My Email: marckywu@gmail.com
            隨筆 - 19, 文章 - 0, 評論 - 3, 引用 - 0
            數據加載中……

            一個Python文本處理程序

            文本內容為一行一個單詞,如下:
            some
            are
            born
            great
            some
            achieve
            greatness
            and
            some
            have
            greatness
            thrust
            upon
            them

            處理后的輸出結果如下:
            achieve                1
            and                      1
            are                       1
            born                     1
            great                    1
            greatness             2
            have                     1
            some                    3
            them                    1
            thrust                   1
            upon                    1

            Python代碼:
            #!/usr/bin/env python

            = {}

            = file('data.txt')

            while True :
                line 
            = f.readline().strip('\n')

                
            if len(line) == 0 :
                    
            break

                
            if line in d.keys() :
                    d[line] 
            += 1
                
            else :
                    d[line] 
            = 1

            li 
            = sorted(d.items(), key = lambda d : d[0])

            for e in li :
                
            print '%-10s   %d' % e

            附c版代碼:
            #include <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <string.h>

            #define WORDLEN 20

            typedef 
            struct _SNode {
                
            char word[WORDLEN];              /* 存放單詞 */
                
            int count;                       /* 計數器 */
                
            struct _SNode *next;
            } SNode;

            typedef 
            struct _SList {
                SNode 
            *first;
            } SList;
            //Create a empty list
            void createList(SList **p)
            {
                
            *= (SList *)malloc(sizeof(SList));
                (
            *p)->first = NULL;
            }
            //Create a node and set value
            SNode *createNode(const char *str)
            {
                SNode 
            *= NULL;

                p 
            = (SNode *)malloc(sizeof(SNode));
                
                strncpy(p
            ->word, str, WORDLEN); /* 有可能截短單詞 */
                p
            ->word[WORDLEN - 1= '\0';
                p
            ->count = 1;
                p
            ->next = NULL;

                
            return p;
            }

            void insertNode(SList *listp, char *wordp)
            {
                SNode 
            *p1 = listp->first;
                SNode 
            *p2 = p1;

                
            if (p1 == NULL) {           /* list is empty, put the node into first */
                    listp
            ->first = createNode(wordp);
                    
            return;
                }
                
                
            while (p1 != NULL) {
                    
            /*單詞和當前節點相等,計數器加1*/
                    
            if (strcmp(p1->word, wordp) == 0) {
                        p1
            ->count += 1;
                        
            return;
                    }
                    
            /*當前節點大于了讀取的單詞,將單詞插入此節點之前*/
                    
            if (strcmp(p1->word, wordp) > 0) {
                        SNode 
            *nodep = createNode(wordp);

                        nodep
            ->next = p1;
                        
            if (p1 == listp->first) /* 在第一個節點之前插入 */
                            listp
            ->first = nodep;
                        
            else
                            p2
            ->next = nodep; /* 在非第一個節點之前插入 */
                        
            return;
                    }

                    p2 
            = p1;
                    p1 
            = p1->next;
                }

                
            if (p1 == NULL) {           /* 讀取的單詞比所有節點都大,插入到鏈表末尾 */
                    p2
            ->next = createNode(wordp);
                }

                
            return;
            }

            void printList(SList *p)
            {
                SNode 
            *temp = p->first;
                
                
            while (temp != NULL) {
                    printf(
            "%-20s   %d\n", temp->word, temp->count);
                    temp 
            = temp->next;
                }
            }

            void freeList(SList *p)
            {
                SNode 
            *p1 = p->first;
                SNode 
            *p2 = p1;
                
                
            while (p1 != NULL) {
                    p2 
            = p1;
                    p1 
            = p1->next;
                    free(p2);
                }

                free(p);
            }

            int main(void)
            {
                FILE 
            *file;
                
            char wordbuff[WORDLEN];
                SList 
            *wordlist;

                createList(
            &wordlist);

                file 
            = fopen("data.txt""r");

                
            while (fgets(wordbuff, WORDLEN, file)) {
                    wordbuff[strlen(wordbuff) 
            - 1= '\0'/* 除去單詞最后的換行符 */
                    insertNode(wordlist, wordbuff);
                }
                
                printList(wordlist);

                freeList(wordlist);
                fclose(file);

                
            return 0;
            }
                
                

                    

            posted on 2009-07-22 16:33 Marcky 閱讀(645) 評論(0)  編輯 收藏 引用 所屬分類: Python

            久久精品aⅴ无码中文字字幕不卡| www.久久热.com| 久久久久国产视频电影| 办公室久久精品| 久久久久无码精品| 久久综合亚洲色HEZYO社区| 婷婷五月深深久久精品| 嫩草影院久久99| 中文字幕精品久久| 国产精品18久久久久久vr| 久久亚洲天堂| 人人狠狠综合久久88成人| 91精品观看91久久久久久| 波多野结衣久久一区二区| 久久午夜电影网| 亚洲中文字幕无码一久久区| 日韩一区二区久久久久久| 久久人与动人物a级毛片| segui久久国产精品| 亚洲国产精品无码久久98| 久久无码精品一区二区三区| 久久国产高潮流白浆免费观看| 久久精品中文字幕有码| 波多野结衣中文字幕久久| 国产精品久久久久久久app | 一本一道久久a久久精品综合| 99久久99这里只有免费的精品| 久久午夜综合久久| 久久婷婷综合中文字幕| 无码国内精品久久人妻| 久久精品亚洲男人的天堂| 国产精品一久久香蕉国产线看| 老男人久久青草av高清| 久久青青国产| 久久夜色撩人精品国产| 久久久精品国产亚洲成人满18免费网站| 精品久久久噜噜噜久久久 | 粉嫩小泬无遮挡久久久久久| 伊人久久大香线蕉亚洲| 欧美日韩精品久久久免费观看| 久久久久国产成人精品亚洲午夜|