精华内容
下载资源
问答
  • a_list = [初始值] * 初始大小 eg: a_list = [0] * 5 # 创建初始含有5个0元素的列表
    a_list = [初始值] * 初始大小
    eg:
    a_list = [0] * 5 # 创建初始含有50元素的列表
    
    展开全文
  • Python初始化列表

    万次阅读 2019-04-29 18:17:49
    Python初始化列表 下面我们就来介绍在Python中初始化列表(我们创建大小为1000并使用零初始化的列表)的一些方法。 1)方法一:使用for循环和append()函数 arr = [] for i in range(1000): arr.append(0) 2)方法...

    Python初始化列表

    下面我们就来介绍在Python中初始化列表(我们创建大小为1000并使用零初始化的列表)的一些方法。

    1)方法一:使用for循环和append()函数

    arr = []
    for i in range(1000):
        arr.append(0)
    

    2)方法二:使用带计数器变量的while循环和append()

    arr = []
    i = 0
    while(i<1000):
        arr.append(0)
    

    3)方法三:使用列表推导(List Comprehension)

    列表推导(List Comprehension) 是一种数学家用来实现众所周知标记集合的Python方式。它由方括号组成,包含一个表达式,后跟一个for子句,后面跟一个可选的if子句。

    表达式可以是我们想要放入列表中的任何类型的对象;由于我们用零初始化列表,因此我们的表达式将只为0。

    arr = [0 for i in range(1000)]
    

    4)方法四:使用*运算符

    运算符可以用作[object] * n,其中n是数组中元素的数目。

    arr = [0]*1000
    

    代码执行时间比较

    下面我们来看看这四种方法的执行时间,看看那种方法更快。

    示例:我们将计算每种方法在500次上初始化10000个元素的数组所花费的平均时间。

    # 导入时间模块以计算时间
    import time 
    
    # 初始化列表以保存时间
    forLoopTime = [] 
    whileLoopTime = [] 
    listComprehensionTime = [] 
    starOperatorTime = [] 
    
    # 重复此过程500次,并计算所用的平均时间。
    for k in range(500):  
    
        # 开始时间
        start = time.time() 
        # 声明空列表
        a = [] 
        # 执行for循环10000次
        for i in range(10000): 
            a.append(0) 
        # 停止时间
        stop = time.time() 
        forLoopTime.append(stop-start) 
        
        # 开始时间
        start = time.time() 
        # 声明空列表
        a = [] 
        i = 0
        # 执行while循环10000次
        while(i<10000): 
            a.append(0) 
            i+= 1
        stop = time.time() 
        whileLoopTime.append(stop-start) 
    
        # 开始时间
        start = time.time() 
        # 使用列表推导(List Comprehension) 来初始化列表
        a = [0 for i in range(10000)]  
        stop = time.time() 
        listComprehensionTime.append(stop-start) 
       
    	# 开始时间
        start = time.time() 
        # 使用*运算符
        a = [0]*10000 
        stop = time.time() 
        starOperatorTime.append(stop-start) 
    
    print("for循环所用的平均时间:" + str(sum(forLoopTime)/100)) 
    
    print("while循环所用的平均时间:" + str(sum(whileLoopTime)/100)) 
    
    print("列表推导所用的平均时间:" + str(sum(listComprehensionTime)/100)) 
    
    print("* 运算符所用的平均时间: " + str(sum(starOperatorTime)/100))
    

    输出结果

    for循环所用的平均时间:0.008704814910888672
    while循环所用的平均时间:0.0133302903175354
    列表推导所用的平均时间:0.003199863433837891
    * 运算符所用的平均时间: 0.00023694276809692382
    

    注意:时间将根据执行此代码的平台而有所不同。这些时间仅用于研究这些初始化方法的相对性能。

    ● 可以看出,for和while循环所用时间几乎相同。

    ● 列表推导的性能比for和while循环要好得多,前者的速度要快3-5倍。当我们尝试创建1-1000的数字列表时,可以看到另一个这种差异的例子。使用列表推导比使用append()要好得多。

    `a = [i ``for` `i in range1,1001]`
    

    ● 使用*运算符比其余方法更快,这是您应该初始化列表的方式

    展开全文
  • python 列表list初始化

    万次阅读 2017-11-21 10:55:30
    python3 列表list初始化 list 代码练习

    python 列表list初始化

    1. 基本方法

      $ python
      Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
      [GCC 5.4.0 20160609] on linux
      Type "help", "copyright", "credits" or "license" for more information.
      >>> n = [1, 2, 3, 4]
      >>> print (n)
      [1, 2, 3, 4]
      >>> 
    2. 连续数字初始化

      >>> list1 = [n for n in range(1,6)]
      >>> print list1
       File "<stdin>", line 1
         print list1 #python3 特性输出要()
                   ^
      SyntaxError: Missing parentheses in call to 'print'
      >>> print (list1)
      [1, 2, 3, 4, 5]
      >>> 
    3. 相同的值初始化

      >>> #第一种方法
      >>> list2 = ['a' for n in range(4)]
      >>> print(list2)
      ['a', 'a', 'a', 'a']
      >>> #第二种方法:字符和数字
      >>> list3 = ['b'] * 4
      >>> print(list3)
      ['b', 'b', 'b', 'b']
      >>> list4 = [3] * 4
      >>> print (list4)
      [3, 3, 3, 3]
      >>> 
    4. 二位数组初始化

      $ python
      Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
      [GCC 5.4.0 20160609] on linux
      Type "help", "copyright", "credits" or "license" for more information.
      >>> #初始一个5×4的数组
      >>> multilist = [[1 for col in range(5)] for row in range(4)]
      >>> print (multilist)
      [[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
      >>> 

      list 练习

    展开全文
  • python 变量初始化列表

    千次阅读 2018-11-21 17:33:27
    python 不能写new_loss=old_loss=[] 这样 两个变量实际上是同一个list 要分开写new_loss=[] Old_loss=[] ... #初始化方法一 new_loss = [] old_loss = [] #初始化方法二  new_loss = old_loss ...

    python 不能写new_loss=old_loss=[]

    这样 两个变量实际上是同一个list

    要分开写new_loss=[]

    Old_loss=[]

    以下列数据文件为例:

    def analyze_mmr(fn):
        #初始化方法一
        new_loss = []
        old_loss = []
        #初始化方法二
        new_loss = old_loss =[]
        with open(fn, encoding='utf8') as f:
            for line in f:
                parts = line.split('=')
                if parts[0] == 'new_loss':
                    print(parts[0])
                    print('add_new_loss')
                    new_loss.append(parts[1].strip())
                elif parts[0] == 'old_loss':
                    old_loss.append(parts[1].strip())
                else:
                    pass
        return new_loss, old_loss

    运行

    n, o = analyze('../example.txt')

    初始化方法一输出 n=[1,2],o=[3,4]

    初始化方法二输出 n=[1,2,3,4],o=[1,2,3,4]

    测试文档:

    example.txt

    new_loss=1

    old_loss=3

    new_loss=2

    old_loss=4

     

     

     

    展开全文
  • python 初始化 元组 Python | 重新初始化元组 (Python | Reinitializing tuple) In this tutorial, we will learn how can we reinitialize a tuple with a new set of elements/objects? 在本教程中,我们将学习...
  • Python继承初始化问题

    千次阅读 2019-07-25 14:06:00
    如果子类没有定义自己的初始化函数,父类的初始化函数会被默认调用;但是如果要实例化子类的对象,则只能传入父类的初始化函数对应的参数,否则会出错。 Child没有初始化函数 class Parent: def __init__(self,...
  • python初始化属性在def __init__()中定义,实例化对象后可直接调用 python类非初始化属性在def func()中定义,实例化对象后,先调用调用函数,再调用属性 代码 class Mdata(object): def __init__(self): ...
  • 今天遇到初始化列表的问题,在这里记一点东西。 本篇的主要内容: Python中列表解析的方式 初始化指定长度的列表的方法 关于Python列表解析 列表解析可以快速将一个列表通过操作转化为另一个列表(其实不只是list...
  • Python延迟初始化(lazy property)

    千次阅读 2017-08-28 16:39:11
    Python 对象的延迟初始化是指,当它第一次被创建时才进行初始化,或者保存第一次创建的结果,然后每次调用的时候直接返回该结果。 延迟初始化主要用于提高性能,避免浪费计算,并减少程序的内存需求。 property...
  • python——初始化数组

    万次阅读 2018-12-30 09:23:27
    因为画图中x轴与y轴的数据通常为数组格式的数据,所以先总结一下如何初始化数组: (1)list得到数组 # 通过array函数传递list对象 L = [1, 2, 3, 4, 5, 6] a = np.array(L) # 若传递的是多层嵌套的list,...
  • Python初始化 (Python class init) Whenever a beginner starts learning the Python programming language, they come across something like __init__ which usually they don’t fully understand. In this ...
  • Python字典初始化三种方式

    万次阅读 2019-07-03 23:16:40
    Python字典初始化三种方式 In [1]: from collections import defaultdict In [3]: b = dict() In [4]: c = {} In [5]: a = defaultdict(defaultdict) In [6]: print(type(a),type(b),type(c)) <class '...
  • 首先是初始化一个一维列表: List=[None,None,None,None] 或者, List=[None]*4 效果和上面一样。 List=[None] List=List*4 列表初始化如果对一个列表*N,效果是一维扩展。 接着是初始化一个二维列表: ...
  • Python字典初始化和装载数据

    千次阅读 2019-04-25 00:09:55
    from collections import defaultdict c = {} c.setdefault('a', []).append(1) c.setdefault('a', []).append(2) c.setdefault('b', []).append(4) d = defaultdict(list) ...d中的a为列表。e中的a为字典。
  • python初始化二维数组

    万次阅读 2012-06-04 22:59:53
    转自:... Python初始化一个5 x 3每项为0的数组,最好方法是: multilist = [[0 for col in range(5)] for row in range(3)] 我们知道,为了初始化一个一维数组,我们可以这样做: alis

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 401,900
精华内容 160,760
关键字:

python列表初始化

python 订阅