精华内容
下载资源
问答
  • 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 初始化 元组 Python | 重新初始化元组 (Python | Reinitializing tuple) In this tutorial, we will learn how can we reinitialize a tuple with a new set of elements/objects? 在本教程中,我们将学习...

    python 初始化 元组

    Python | 重新初始化元组 (Python | Reinitializing tuple)

    In this tutorial, we will learn how can we reinitialize a tuple with a new set of elements/objects?

    在本教程中,我们将学习如何使用一组新的元素/对象重新初始化元组?

    To reinitialize a tuple, we can use tuple() or a pair of round brackets (), the steps are,

    重新初始化元组 ,我们可以使用tuple()或一对圆括号() ,步骤是,

    1. Reinitialize the tuple using () or tuple()

      使用()或tuple()重新初始化元组

    2. Reassign the new set of objects/elements

      重新分配新的对象/元素集

    Consider the below program,

    考虑下面的程序,

    # Reinitializing a tuple in Python
    
    # tuple creation
    x = ("Shivang", 21, "Indore", 9999867123)
    
    # printing original tuple
    print("x: ", x)
    print("len(x): ", len(x))
    print("type(x): ", type(x))
    print()
    
    # Reinitializing tuple using tuple()
    x = tuple()
    # assigning new  objects
    x = (10, 20, 30, 40, 50)
    print("x: ", x)
    print("len(x): ", len(x))
    print("type(x): ", type(x))
    print()
    
    # Reinitializing tuple using ()
    x = ()
    # assigning new  objects
    x = ("Amit", 18, "Jaipur", 98.24, 8888888888)
    print("x: ", x)
    print("len(x): ", len(x))
    print("type(x): ", type(x))
    print()
    
    

    Output

    输出量

    x:  ('Shivang', 21, 'Indore', 9999867123)
    len(x):  4
    type(x):  <class 'tuple'>
    
    x:  (10, 20, 30, 40, 50)
    len(x):  5
    type(x):  <class 'tuple'>
    
    x:  ('Amit', 18, 'Jaipur', 98.24, 8888888888)
    len(x):  5
    type(x):  <class 'tuple'>
    
    
    

    翻译自: https://www.includehelp.com/python/reinitializing-a-tuple.aspx

    python 初始化 元组

    展开全文
  • 今天小编就为大家分享一篇python 变量初始化列表的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • a_list = [初始值] * 初始大小 eg: a_list = [0] * 5 # 创建初始含有5个0元素的列表
    a_list = [初始值] * 初始大小
    eg:
    a_list = [0] * 5 # 创建初始含有50元素的列表
    
    展开全文
  • 今天小编就为大家分享一篇在Python中预先初始化列表内容和长度的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python初始化list列表(1维、2维) 1.初始化递增的list: list1 = range(10) print list1 [0,1,2,…,9] 2.初始化每项为0的一维数组: list2 = [0] * 5 print list2 [0,0,0,0,0] 3.初始化固定值的一维...

    原文出处:http://www.cnblogs.com/zqifa/

    python初始化list列表(1维、2维)

    1.初始化递增的list:

    list1 = range(10)
    print list1
    [0,1,2,…,9]

    2.初始化每项为0的一维数组:

    list2 = [0] * 5
    print list2
    [0,0,0,0,0]

    3.初始化固定值的一维数组:

    initVal = 1
    listLen = 5
    list3 = [ initVal for i in range(5)]
    print list3
    [1,1,1,1,1]
    list4 = [initVal] * listLen
    print list4
    [1,1,1,1,1]

    4.初始化一个5x6每项为0(固定值)的数组(推荐使用):

    multilist = [[0 for col in range(5)] for row in range(6)]

    5.初始化一个5x6每项为0(固定值)的数组,错误做法

    multilist = [[0] * 5 for row in range(3)]

    看到了以上的方法,那初始化一个二维数组时,是否可以这样做呢:
    multi = [[0] * 5] * 3

    其实,这样做是不对的,因为[0] * 5是一个一维数组的对象,* 3的话只是把对象的引用复制了3次,比如,我修改multi[0][0]:
    multi = [[0] * 5] * 3
    multi[0][0] = ‘Hello’
    print multi

    输出的结果将是:
    [[‘Hello’, 0, 0, 0, 0], [‘Hello’, 0, 0, 0, 0], [‘Hello’, 0, 0,0, 0]]
    我们修改了multi[0][0],却把我们的multi[1][0],multi[2][0]也修改了。这不是我们想要的结果。

    但是如下写法是对的:
    multilist = [[0] * 5 for row in range(3)]
    multilist[0][0] = ‘Hello’
    print multilist
    我们看输出结果:
    [[‘Hello’, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    恩,没问题。但是,由于使用 * 的方法比较容易引起混淆导致Bug,所以还是推荐使用上面方法4,即:

    multilist = [[0 for col in range(5)] for row in range(6)]

    作者:zqifa
    出处:http://www.cnblogs.com/zqifa/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

    展开全文
  • 今天小编就为大家分享一篇python 初始化一个定长的数组实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python 初始化 dict 方法

    千次阅读 2017-07-23 13:20:30
    python 初始化 dict 方法第一种:d1={'age': 20, 'name': 'Bob', 'score': 88} 第二种: d2 = dict(name=’Bob’, age=20, score=88)
  • python 列表list初始化

    万次阅读 2017-11-21 10:55:30
    python3 列表list初始化 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中预先初始化列表内容和长度

    万次阅读 多人点赞 2018-03-07 21:11:18
    如果我们预先知道列表的长度,那预先初始化该长度的列表,然后对每一个赋值,会比每次list.append()更有效率。 如果想要序列初值,可以用range函数,但注意,range函数返回的是可迭代对象,需要转化成list >>>...
  • python初始化指定长度的二维list

    千次阅读 2018-11-10 14:52:49
    在python中,为了实现锯齿数组的数据结构,经常需要初始化一个行数指定、...python初始化指定长度的一维list有两种等价的方式 方式一 a = [None] * n 方法二 a = [None for i in range(n)] 结果都能得到 (n =...
  • python 初始化一个定长的数组

    万次阅读 2018-06-22 11:16:32
    ​ # 有时候我们提前知道了一个数组的大小,需要给每个元素...我们需要定义一个定# # 长的数组,python中代码如下: ​ b = [0 for _ in range(10)] #也可以b = [0]*10 for i in range(10): pass # 赋值语句 ...
  • 今天遇到初始化列表的问题,在这里记一点东西。 本篇的主要内容: Python中列表解析的方式 初始化指定长度的列表的方法 关于Python列表解析 列表解析可以快速将一个列表通过操作转化为另一个列表(其实不只是list...
  • python初始化二维数组的小问题

    千次阅读 2017-06-10 16:49:26
    python二维数组初始化问题 引子:今天在写用Python写01背包的算法课作业时,发现一个关于二维数组的小问题,本来期末已经很忙了,但这个问题还是值得记录下来的,因为这不是第一次遇到了,这次花了将近一个小时才搞...
  • python初始化二维矩阵

    千次阅读 2020-07-27 15:53:37
    n为列,m为行 matrix = [[0]*n for _ in range(m)]
  • # -*- coding: utf-8 -*- """ Created on Wed Jan 6 15:23:57 2021 @author: sangliping """ import numpy as numpy a = numpy.empty(x, dtype=object)...目前在整理python百战学习笔记,期待后续更多的更新哦。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 415,134
精华内容 166,053
关键字:

python初始化列表

python 订阅