Python list

Python list

列表是最经常使用的 Python 数据类型,它能够做为一个方括号内的逗号分隔值出现
建立一个列表,只要把逗号分隔的不一样的数据项使用方括号括起来便可html

建立列表

list1 = [1, 2, 3, 4, 5, 6, 7]
list2 = [['a', 'b'], 'c']

# 建立空列表
list3 = []
list4 = list()

列表切片、拼接

示例:python

list1 = [1, 2, 3, 4, 5, 6, 7]
list2 = ['a', 'b', 'c']

print(list1[2 : 4])         # 读取第3到第4个数据(左开右闭)
print(list1[-3])            # 从右开始读取第三个数据
print(list1[: 5])           # 读取前5个数据
print(list1[0 : -1 : 2])    # 每隔一个数据读一个数据
print(list1[:: -1])         # 倒序打印列表
print(list1 + list2)        # 将list1和list2拼接起来

输出结果:数据结构

[3, 4]
5
[1, 2, 3, 4, 5]
[1, 3, 5]
[7, 6, 5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 6, 7, 'a', 'b', 'c']

列表嵌套

列表中的元素不只能够是字符串或数字,还能够是字典、集合或是其余列表app

list1 = [1, 2, 3, 4, 5]
list2 = [2, 2, 2, 2, 2]
list3 = [list1, list2]

print(list3)
print(list3[0][3:])

输出结果:函数

[[1, 2, 3, 4, 5], [2, 2, 2, 2, 2]]
[4, 5]

函数和方法

函数

函数 做用
len(list) 列表元素个数
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表

方法

方法 做用
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另外一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.insert(index,obj) 将对象插入列表(经过index指定位置)
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),而且返回该元素的值
=del list[-1]
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素
list.sort(key=None,reverse=False) 对原列表进行排序
list.clear() 清空列表
list.copy() 复制列表

注意

在循环列表的同时进行修改,可能致使一些问题:code

有元素被跳过:

def main():
    a = [1, 2, 3, 4, 5, 6, 7]
    for x in a:
        if x > 3:
            a.remove(x)
    print(a)

    b = [1, 2, 3, 4, 5, 6, 7]
    for x in b[:]:
        if x > 3:
            b.remove(x)
    print(b)


if __name__ == '__main__':
    main()

输出结果:htm

[1, 2, 3, 5, 7]
[1, 2, 3]

很明显,b 的循环结果才是想要的结果,a 在循环时跳过了一些元素
由于 b[:]b 的一个复制,并无被修改对象

其余数据结构

因为列表的特性,能够用它来简单模拟其余的数据结构blog

关于 Python 中的栈(stack) <- 点击查看排序

class Stack(object):

    def __init__(self):
        self.stack = list()

    def push(self, data):
        """
        进栈函数
        """
        self.stack.append(data)

    def pop(self):
        """
        出栈函数,
        """
        return self.stack.pop()

    def gettop(self):
        """
        取栈顶
        """
        return self.stack[-1]

队列

关于 Python 中的队列(queue) <- 点击查看

class Queue(object):

    def __init__(self):
        self.queue = list()

    def put(self, data):
        self.queue.append(data)

    def get(self):
        return self.queue.pop(0)

    def qsize(self):
        return len(self.queue)
相关文章
相关标签/搜索