精华内容
下载资源
问答
  • Python concatenate list - Python list 拼接

    千次阅读 2019-03-06 19:22:25
    Python concatenate list Python list 拼接。 concatenate_python_list.py # -*- coding: utf-8 -*- ''' ============================================================================ Name : concatenate...

    Python concatenate list - Python list 拼接

    Python list 拼接。

    1. concatenate_python_list.py

    # -*- coding: utf-8 -*-
    
    '''
     ============================================================================
     Name        : concatenate_python_list.py
     Author      : Yongqiang Cheng
     Version     : Feb 29, 2019
     Copyright   : Copyright 2019 ForeverStrong License
     Description : CONCATENATE LIST in Python, Ansi-style
     ============================================================================
    '''
    
    label = [[2, 5, 8], [3, 6, 9]]
    list_label = []
    for index in range(3):
        list_label = list_label + label
    
    print(list_label)
    
    

    2. Console

    /usr/bin/python2.7 /home/strong/dbscan_work/dbscan_performance_evaluation/concatenate_python_list.py
    [[2, 5, 8], [3, 6, 9], [2, 5, 8], [3, 6, 9], [2, 5, 8], [3, 6, 9]]
    
    Process finished with exit code 0
    
    展开全文
  • Python list函数

    万次阅读 多人点赞 2018-10-05 22:17:51
    Python 内置函数list()的介绍、使用和注意事项。

    目录

    描述

    语法

    使用示例

    1. 创建一个空列表(无参调用list函数)

    2. 将字符串转换为列表

    3. 将元组转换为列表

    4. 将字典转换为列表

    5. 将集合转换为列表

    6. 将其他可迭代序列转化为列表

    注意事项

    1. 参数必须是可迭代序列对象

    2. 无意义的转换----将列表转换为列表


     

    描述

    list()函数是Python的内置函数。它可以将任何可迭代数据转换为列表类型,并返回转换后的列表。当参数为空时,list函数可以创建一个空列表。

     

    语法

    list(object)
    名称 说明 备注
    object 待转换为列表的数据类型 可省略的参数

     

    使用示例

    1. 创建一个空列表(无参调用list函数)

    >>> test = list()
    >>> test
    []

    2. 将字符串转换为列表

    >>> test = list('cat')
    >>> test
    ['c', 'a', 't']

    3. 将元组转换为列表

    >>> a_tuple = ('I love Python.', 'I also love HTML.')
    >>> test = list(a_tuple)
    >>> test
    ['I love Python.', 'I also love HTML.']

    4. 将字典转换为列表

    >>> a_dict = {'China':'Beijing', 'Russia':'Moscow'}
    >>> test = list(a_dict)
    >>> test
    ['China', 'Russia']

    ⚠️注意:将字典转换为列表时,会将字典的值舍去,而仅仅将字典的键转换为列表。如果想将字典的值全部转换为列表,可以考虑使用字典方法dict.values()

    5. 将集合转换为列表

    >>> a_set = {1, 4, 'sdf'}
    >>> test = list(a_set)
    >>> test
    [1, 'sdf', 4]

    6. 将其他可迭代序列转化为列表

    下面的代码将range类型和map类型的可迭代序列转换为列表:

    >>> test1 = list(range(10))
    >>> test2 = list(map(int, [23.2, 33.1]))
    >>> test1
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> test2
    [23, 33]

     

    注意事项

    1. 参数必须是可迭代序列对象

    list函数的参数必须是可迭代对象。当选用不可迭代的对象作为参数时,Python报错。

    >>> test = list(12)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'int' object is not iterable

    2. 无意义的转换----将列表转换为列表

        可以使用list函数将列表转换为一个列表,虽然这么做Python不会有任何的异常或者报错----但是这种行为显然是没有意义且浪费资源的行为。

    >>> a_list = ['Python', 'C', 'Java', 'HTML', 'CSS']
    >>> test = list(a_list)
    >>> test
    ['Python', 'C', 'Java', 'HTML', 'CSS']

     

    展开全文
  • python list 增加元素的三种方法

    万次阅读 多人点赞 2018-03-27 17:36:07
    python list 增加元素的三种方法append 翻译成中文是:追加在Python中append 用来向 list 的末尾追加单个元素,此元素如果是一个list,那么这个list将作为一个整体进行追加。例如:Python代码li=['a', 'b'] li....

    python list 增加元素的三种方法

    append 翻译成中文是:追加
    在Python中append 用来向 list 的末尾追加单个元素,此元素如果是一个list,那么这个list将作为一个整体进行追加。
    例如:
    Python代码
    li=['a', 'b']   
    li.append([2,'d'])   
    li.append('e')   
    #输出为:['a', 'b', [2, 'd'], 'e']  
    li=['a', 'b'] li.append([2,'d']) li.append('e') #输出为:['a', 'b', [2, 'd'], 'e']
     

    insert 翻译成中文是:插入
    在Python中 insert 用来将单个元素插入到 list 中。数值参数是插入点的索引。
    例如:
    Python代码
    li=['a', 'b']   
    li.insert(0,"c")   
    #输出为:['c', 'a', 'b']  
    li=['a', 'b'] li.insert(0,"c") #输出为:['c', 'a', 'b']
     

    extend 翻译成中文是:延长
    在Python中 extend 用来连接 list。请注意不要使用多个参数来调用 extend,要使用单个 list 参数进行调用。
    例如:
    Python代码
    li=['a','b']   
    li.extend([2,'e'])   
    #输出为:['a', 'b', 2, 'e']  
    li=['a','b'] li.extend([2,'e']) #输出为:['a', 'b', 2, 'e'] 

    这三者之间如何选用:
    append多用于把元素作为一个整体插入
    insert多用于固定位置插入
    extend多用于list中多项分别插入

    展开全文
  • python list底层实现原理

    千次阅读 2020-06-03 22:23:50
    Pythonlist特别有用。在使用的过程中,python中的list呈现给我们的是一个长度可变对的数组。但是list底层的数据结构是什么呢?这篇文章就来介绍Pythonlist是如何实现的。 原文是这篇英文原文Python list ...

    0 前言

    在Python中list特别有用。在使用的过程中,python中的list呈现给我们的是一个长度可变对的数组。但是list底层的数据结构是什么呢?这篇文章就来介绍Python中list是如何实现的。
    原文是这篇英文原文Python list implementation

    1 List对象的C结构

    来看下面简单的程序,在list中添加一些整数并将他们打印出来。

    >>> L = []
    >>> L.append(1)
    >>> L.append(2)
    >>> L.append(3)
    >>> L
    [1, 2, 3]
    >>> for e in L:
    ...   print e
    ... 
    1   
    2   
    3   
    

    正如你所看到的,list是集合类型,是可以迭代的。
    Python中list是用下边的C语言的结构来表示的。ob_item是用来保存元素的指针数组,allocated是ob_item预先分配的内存总容量。

    typedef struct {
        PyObject_VAR_HEAD
        PyObject **ob_item;
        Py_ssize_t allocated;
    } PyListObject;
    

    2 List的初始化

    让我们来看下当初始化一个空list的时候发生了什么 L = []

    arguments: size of the list = 0
    returns: list object = []
    PyListNew:
        nbytes = size * size of global Python object = 0
        allocate new list object
        allocate list of pointers (ob_item) of size nbytes = 0
        clear ob_item
        set list's allocated var to 0 = 0 slots
        return list object 
    

    非常重要的是知道list申请内存空间的大小(后文用allocated代替)的大小和list实际存储元素所占空间的大小(ob_size)之间的关系,ob_size的大小和len(L)是一样的,而allocated的大小是在内存中已经申请空间大小。通常你会看到allocated的值要比ob_size的值要大。这是为了避免每次有新元素加入list时都要调用realloc进行内存分配。接下来我们会看到更多关于这些的内容。

    3 Append

    我们在list中追加一个整数:L.append(1)。发生了什么?调用了内部的C函数app1()

    arguments: list object, new element
    returns: 0 if OK, -1 if not
    app1:
        n = size of list
        call list_resize() to resize the list to size n+1 = 0 + 1 = 1
        list[n] = list[0] = new element
        return 0
    

    来让我们看下list_resize(),list_resize()会申请多余的空间以避免调用多次list_resize()函数,list增长的模型是:0, 4, 8, 16, 25, 35, 46, 58, 72, 88, …

    arguments: list object, new size
    returns: 0 if OK, -1 if not
    list_resize:
        new_allocated = (newsize >> 3) + (newsize < 9 ? 3 : 6) = 3
        new_allocated += newsize = 3 + 1 = 4
        resize ob_item (list of pointers) to size new_allocated
        return 0
    

    开辟了四个内存空间来存放list中的元素,存放的第一个元素是1。你可以从下图中看到L[0]指向了我们刚刚加进去的元素。虚线的框代表了申请了但是还没有使用(存储元素)的内存空间。
    在这里插入图片描述
    我们继续加入一个元素:L.append(2)。调用list_resize,同时n+1=2。但是因为allocated(译者注:已经申请的空间大小)是4。所以没有必要去申请新的内存空间。相同的事情发生在再次在list中添加两个元素的时候: L.append(3),L.append(4)。下图展示了到目前为止我们做了什么。
    在这里插入图片描述
    需要注意的是,python的list并不直接保存元素,二十保存元素的指针,这也是同一个list中可以同时存放多种类型元素的根本原因。

    4 Insert

    现在我们在列表的第一个位置插入一个整数5:L.insert(1, 5),看看内部发生了什么。调用了ins1()

    arguments: list object, where, new element
    returns: 0 if OK, -1 if not
    ins1:
        resize list to size n+1 = 5 -> 4 more slots will be allocated
        starting at the last element up to the offset where, right shift each element 
        set new element at offset where
        return 0  
    

    在这里插入图片描述
    虚线框表示已经申请但是没有使用的内存。申请了8个内存空间但是list实际用来存储元素只使用了其中5个内存空间
    insert的时间复杂度是O(n)

    5 Pop

    当你弹出list的最后一个元素:L.pop()。调用listpop(),list_resize在函数listpop()内部被调用,如果这时ob_size(译者注:弹出元素后)小于allocated(译者注:已经申请的内存空间)的一半。这时申请的内存空间将会缩小。

    arguments: list object
    returns: element popped
    listpop:
        if list empty:
            return null
        resize list with size 5 - 1 = 4. 4 is not less than 8/2 so no shrinkage
        set list object size to 4
        return last element
    

    Pop的时间复杂度是O(1)
    在这里插入图片描述
    你可以发现4号内存空间指向还指向那个数值(译者注:弹出去的那个数值),但是很重要的是ob_size现在却成了4.
    让我们再弹出一个元素。在list_resize内部,size – 1 = 4 – 1 = 3 比allocated(已经申请的空间)的一半还要小。所以list的申请空间缩小到
    6个,list的实际使用空间现在是3个(译者注:根据(newsize >> 3) + (newsize < 9 ? 3 : 6) = 3在文章最后有详述)
    你可以发现(下图)3号和4号内存空间还存储着一些整数,但是list的实际使用(存储元素)空间却只有3个了。
    在这里插入图片描述

    6 Romve

    python list对象有一个方法可以移除一个指定的元素。调用listremove()。

    arguments: list object, element to remove
    returns none if OK, null if not
    listremove:
        loop through each list element:
        if correct element:
            slice list between element's slot and element's slot + 1
            return none
        return null
    

    切开list和删除元素,调用了list_ass_slice()(译者注:在上文slice list between element’s slot and element’s slot + 1被调用),来看下list_ass_slice()是如何工作的。在这里,低位为1 高位为2(译者注:传入的参数),我们移除在1号内存空间存储的数据5

    arguments: list object, low offset, high offset
    returns: 0 if OK
    list_ass_slice:
        copy integer 5 to recycle list to dereference it
        shift elements from slot 2 to slot 1
        resize list to 5 slots
        return 0
    

    Remove的时间复杂度为O(n)
    在这里插入图片描述

    总结

    我们能看到 Python 设计者的苦心。在需要的时候扩容,但又不允许过度的浪费,适当的内存回收是非常必要的。
    这个确定调整后的空间大小算法很有意思。
    调整后大小 (new_allocated) = 新元素数量 (newsize) + 预留空间 (new_allocated)
    调整后的空间肯定能存储 newsize 个元素。要关注的是预留空间的增长状况。
    将预留算法改成 Python 版就更清楚了:(newsize // 8) + (newsize < 9 and 3 or 6)。
    当 newsize >= allocated,自然按照这个新的长度 “扩容” 内存。
    而如果 newsize < allocated,且利用率低于一半呢?
    allocated newsize new_size + new_allocated
    10 4 4 + 3
    20 9 9 + 7
    很显然,这个新长度小于原来的已分配空间长度,自然会导致 realloc 收缩内存。(不容易啊)
    引自《深入Python编程》

    原文链接:Python中list的实现

    展开全文
  • python list的排列组合

    万次阅读 2017-12-28 15:22:32
    python list的排列组合
  • python list对象排序

    千次阅读 2018-10-13 22:17:56
    python list对象排序主要使用用sort函数。 list.sort(key=None,reverse=False) 由于list.sort()函数在排序时,使用的是小于号对比,所以自定义的对象类型需要override lt(小于)函数才能实现排序。 ...
  • python list 参数传递方式

    万次阅读 2017-11-07 19:18:42
    python list 参数传递
  • Python list操作用法总结

    万次阅读 2017-01-14 13:32:55
    这篇文章主要介绍了Python list操作用法,以实例形式较为详细的总结分析了Pythonlist的各种常见函数的功能与使用方法,需要的朋友可以参考下 本文实例讲述了Python list操作用法。分享给大家供大家参考,具体...
  • python list去重

    千次阅读 2010-07-12 11:08:00
    python list去重
  • ndarray与Python List的异同

    千次阅读 2019-04-18 19:06:14
    ndarray与Python List的相似处 通过位置访问元素 l[0]、l[2:5]、l[:3]、l[2:] 循环 for item in l: xxx ndarray与Python List的不同 1. Python List元素可以任意类型组合、ndarray元素类型必须相同(不相同...
  • python list字符按数字大小排序

    万次阅读 2019-07-03 11:29:14
    python list字符按数字大小排序 在把list写到csv过程中,遇到一个list的排序问题,list中存放的是数字字符,需要按数字大小来排序 测试源码 testList = ['1', '5', '2', '10', '50', '21', '31', '3', '7'] ...
  • python list保存至csv文件

    万次阅读 2018-11-15 20:42:44
    Python list保存到csv中 假如有一个python代码运行出来后,其结果是一个二维列表,例如: [[“路飞”,“男”,100],[“索隆”,“男”,99],[“娜美”,“女”,90]] 然后每个样本对应的标签是:姓名,性别,...
  • python list数据等间隔抽取并新建list存储~ 非常简单 使用切片即可 更多切片操作: Python 列表切片 - Hubery_Jun - 博客园 https://www.cnblogs.com/midworld/p/11380239.html list = [1,2,3,4,5,6] n = len(list) ...
  • Python List pop()方法

    千次阅读 2018-09-26 19:56:27
    Python List pop()方法 描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。 语法 pop()方法语法: list.pop([index=-1]) 参数 obj – 可选参数,要移除列表元素的索引值,...
  • Python list.sort方法

    万次阅读 多人点赞 2018-10-08 21:39:03
    Python 列表方法 sort()的介绍、使用和注意事项。
  • Python list 拼接

    万次阅读 2017-05-23 21:41:46
    python合并list有几种方法: 1 .append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加 2 .extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加 3 .+ 直接用+...
  • Python list列表添加元素的3种方法

    千次阅读 2019-06-29 18:08:34
    Python list 列表增加元素可调用列表的append() 方法,该方法会把传入的参数追加到列表的最后面。 append() 方法既可接收单个值,也可接收元组、列表等,但该方法只是把元组、列表当成单个元素,这样就会形成在...
  • python list列表添加元素方法
  • 针对python list类型的数据类型,可以通过list.index(obj)的形式返回 obj对应的index位置。 aList = [123, 'xyz', 'zara', 'abc']; print "Index for xyz : ", aList.index( 'xyz' ) ; print "Index for zara : ", ...
  • 如果一个Python list中有很多重复的项,如何有效地找到多少重复的项呢?可以使用collection的Counter方法。。 1 2 3 from collections import Counter Counter([11,22,11,44,22,33]) Counter({11: 2, 22...
  • python list[::2]两个分号代表什么意思

    千次阅读 2019-11-04 13:38:28
    困扰,是因为智慧不够,深思熟虑才能运筹帷幄 疑惑 python list[::2]两个分号代表什么意思 解惑
  • python list 对时间排序小结。

    万次阅读 2016-07-20 16:42:03
    python list 排序比较简单。但是对时间排序有时可能会比较麻烦一点,对时间的大致思想是对时间字符串进行格式化。然后进行排序。 第一种排序方法是按照...
  • 有些时候我们需要从视频序列中均匀的随机采样,我们可以每隔x步进行一次采样,这就要求对一个list每隔x步进行一次截取,再从截取到的不同的子集中随机选取一个数就是我们平均采样的帧的idx。 import random def ...
  • python list转numpy后仍然有list

    千次阅读 2019-06-06 20:43:58
    python 利用numpy 把二维list转ndarray后仍然有list,原因是二维list中各存在list长度不同的情况
  • python list嵌套的切片,规律难以理解

    千次阅读 2018-05-31 06:41:58
    一维python list的切片没有问题。可是嵌套list也就是多维的切片,规律就难以理解,目前还没找到规律,请看下面的代码: def printm1m2(): print( m1 ) print( m2 ) m1 = [[1,2,3,4],[21,22,23,24] , [31,32,33,...
  • Python List转str

    千次阅读 2017-11-15 13:03:19
    pythonlist转换为str Python初初初学者,小小小白,在用SnowNLP做中文处理,提取文本关键词时使用s.keywords()的时候,输出的类型是list,,这是一个list呀,我想转为str,刚开始以为直接a=str(s.keywords(3))就...
  • python list中查找第一个满足条件的元素
  • Python List index方法

    千次阅读 2017-07-07 16:26:34
    Python列表的index方法,[elements].index(element),求取元素element在列表中第一次出现的索引。 list_1 = list(range(5)) * 10 begin, end = 0, len(list_1) print(list_1.index(1, begin, end))
  • python list count统计个数

    万次阅读 2019-06-15 10:40:49
    python数组中统计某个数字出现的次数。。。。。 count_num = 3 lst = [1,2,3,4,5,6,7,8,7,6,4,4,3,3,2] print(lst.count(count_num)) list追加元素,可以用list.append()。 多个list合并,尤其是二维list合并...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 157,994
精华内容 63,197
关键字:

pythonlist

python 订阅