zoukankan      html  css  js  c++  java
  • python练习——列表练习1

    python练习——列表练习

    问题描述:

    编写一个函数,读取文件 words.txt ,建立一个列表,其中每个单词为一个元素。 编写两个版本,一个使用 append 方法,另一个使用 t = t + [x] 。 那个版本运行得慢?为什么?

    前提知识:

    1. 时间和日期,菜鸟教程

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    import time;  # 引入time模块
     
    ticks = time.time()
    print "当前时间戳为:", ticks
    当前时间戳为: 1459994552.51
    

    时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。

    python中时间日期格式化符号:

    • %y 两位数的年份表示(00-99)
    • %Y 四位数的年份表示(000-9999)
    • %m 月份(01-12)
    • %d 月内中的一天(0-31)
    • %H 24小时制小时数(0-23)
    • %I 12小时制小时数(01-12)
    • %M 分钟数(00=59)
    • %S 秒(00-59)
    • %a 本地简化星期名称
    • %A 本地完整星期名称
    • %b 本地简化的月份名称
    • %B 本地完整的月份名称
    • %c 本地相应的日期表示和时间表示
    • %j 年内的一天(001-366)
    • %p 本地A.M.或P.M.的等价符
    • %U 一年中的星期数(00-53)星期天为星期的开始
    • %w 星期(0-6),星期天为星期的开始
    • %W 一年中的星期数(00-53)星期一为星期的开始
    • %x 本地相应的日期表示
    • %X 本地相应的时间表示
    • %Z 当前时区的名称
    • %% %号本身

    太多了,可以点击连接查看。

    在这里只用到了

    获取当前时间,是一个很长的数字,应该是从1970到现在的毫秒数。

    2. Python open()函数

    在这里用到了open函数,给出以下定义:

    open(name[, mode[, buffering]])
    
    • name : 一个包含了你要访问的文件名称的字符串值。
    • mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
    • buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

    代码:

    # 编写一个函数,读取文件 words.txt ,建立一个列表,其中每个单词为一个元素。
    # 编写两个版本,一个使用 append 方法,另一个使用 t = t + [x] 。
    # 那个版本运行得慢?为什么?
    import time
    
    
    def make_word_list1():
        """
        读取文件中的单词
        :return:
        """
        t = []
        # 读取文件
        fin = open('words.txt')
        for line in fin:
            word = line.strip()
            t.append(word)
        return t
    
    
    def make_word_list2():
        """
        使用t=t+word
        :return:
        """
        t = []
        fin = open('words.txt')
        for line in fin:
            word = line.strip()
            t = t + [word]
        return t
    
    
    if __name__ == '__main__':
        start_time = time.time()
        t = make_word_list1()
        spend_time = time.time() - start_time
    
        print(len(t))
        print(t[:10])
        print(spend_time, 'seconds')
    
        start_time = time.time()
        t = make_word_list2()
        elapsed_time = time.time() - start_time
    
        print(len(t))
        print(t[:10])
        print(elapsed_time, 'seconds')
    
    博客网站 https://yamon.top 个人网站 https://yamon.top/resume GitHub网站 https://github.com/yamonc 欢迎前来访问
  • 相关阅读:
    A方法调用B方法,JVM是怎么一步一步调用的
    java ImmutableMap使用
    使用 Spring 配置动态数据源实现读写分离
    spring-boot的三种启动方式
    使用 Spring 配置动态数据源实现读写分离
    Java改变生成随机数的平均值(改变生成随机数的概率)
    微信抢红包算法实现(JAVA)
    Redis分布式锁的实现原理
    Redis和队列
    springboot自定义配置文件
  • 原文地址:https://www.cnblogs.com/chenyameng/p/12656824.html
Copyright © 2011-2022 走看看