• <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 閱讀(639) 評論(0)  編輯 收藏 引用 所屬分類: Python

            99久久免费国产精品| 久久亚洲国产精品123区| av无码久久久久不卡免费网站| 久久人人爽人人人人爽AV| 精品国产一区二区三区久久久狼| 亚洲国产精品无码久久98| 久久婷婷国产综合精品| 9191精品国产免费久久| 伊人久久大香线蕉成人| 亚洲精品乱码久久久久久蜜桃不卡| 久久最新免费视频| AV狠狠色丁香婷婷综合久久| 91秦先生久久久久久久| 久久亚洲精品无码aⅴ大香| 久久久女人与动物群交毛片| 国产精品热久久毛片| 久久久久久无码Av成人影院| 久久久久国产精品麻豆AR影院| 久久久久综合国产欧美一区二区| 色偷偷偷久久伊人大杳蕉| 伊人久久无码精品中文字幕| 久久毛片免费看一区二区三区| 久久精品?ⅴ无码中文字幕| 国产精品久久久久久久 | 久久久久一区二区三区| 久久久久久毛片免费看| 精品久久久噜噜噜久久久 | 久久精品免费网站网| 久久天天躁夜夜躁狠狠| 国产精品一久久香蕉国产线看| 99久久精品九九亚洲精品| 午夜精品久久影院蜜桃| 国产午夜精品理论片久久影视| 欧美久久一区二区三区| 国产精品美女久久久久网| 久久久久青草线蕉综合超碰| 99久久精品国产毛片| 国产精品久久久久无码av| 亚洲国产精品无码久久久蜜芽| 久久精品成人免费观看97| 国产成人精品久久一区二区三区av |