Chinaunix首页 | 论坛 | 博客

分类: Python/Ruby

2014-02-27 21:24:11

show different suffixes amongst arguments,用到了字典的几个类方法,特别的元组返回值的获取方法,特殊的if/else

#! /usr/bin/env python3

# suff
#
# show different suffixes amongst arguments

import sys

def main():
    files = sys.argv[1:]
    suffixes = {}            #字典
    for filename in files:
        suff = getsuffix(filename)
        '''
        ''' 前面的空格主要保持格式统一
        >>> yyy={}
        >>> rs = yyy.setdefault('aaa',[]), 如果不存在key='aaa',那么设置key=‘aaa’,value=[].如果存在,则直接返回value的值.
        >>> rs
        []
        >>> yyy
        {'aaa': []}
        >>> rs.append(1)    #下面的内容顺利成章
        >>> rs
        [1]
        >>> yyy
        {'aaa': [1]}
       '''
        suffixes.setdefault(suff, []).append(filename)


        '''
            >>> yyy.items()     #items()函数返回一个列表,列表中每个元素是一个元组
            [('aaa', [1])]


        '''
    for suff, filenames in sorted(suffixes.items()):
        print(repr(suff), len(filenames))         #repr可显示出非打印字符




def getsuffix(filename):
    '''
        help上说是built-in function,但是不管如何挺好用的,返回一个元组。
        元组的返回值用这种特别的方式接收.
    '''
    name, sep, suff = filename.rpartition('.')




    '''
        这样应用 if/else 更像是在说话.
    '''
    return sep + suff if sep else ''


if __name__ == '__main__':
    main()
              

阅读(1278) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~