【Python基础】列表和元组

列表的定义

Python中使用[]来包含列表成员。

空列表直接使用[]来表示。

列表中的成员的类型可以不同。

列表中还可以包含列表。

if __name__ == "__main__":
    emptyList = []          # Empty list.
    aList = ["John", 18]    # Ordinary list.
    listInList = [aList, 1] # List with list in.
    
    print emptyList         # []
    print aList             # ['John', 18]
    print listInList        # [['John', 18], 1]

列表索引

Python中的列表的索引有很多的方式,下面是一些例子:

if __name__ == "__main__":
    aList = [1, 2, 3, 4, 5, 6]
    print aList[0]      # 1, Positive index, from left to right, start from 0.
    print aList[-1]     # 6, Negative index, from right to left, start form -1.
    print aList[0:4]    # [1, 2, 3, 4], index [0, 4), index 4 not contained.
    print aList[-3:-1]  # [4, 5], index [-3, -1), index -1 not contained.
    print aList[0:-1]   # [1, 2, 3, 4, 5], index -1 not contained.
    print aList[:]      # [1, 2, 3, 4, 5, 6], print all.
    print aList[:2]     # [1, 2], index [0, 2).
    print aList[-2:]    # [5, 6], index [-2, -2).
    print aList[-3:0]   # [], wrong order!!
    print aList[0:6:2]  # [1, 3, 5], the third one is step.
    print aList[-3:0:-1]# [4, 3, 2], the third one is step, could be negative.

Python中的索引可以从左开始也可以从右开始。

可以分片,但是分片需要注意的是第一个索引必须是表示从左边开始的,第二个索引必须是从右边开始的,这也是为什么aList[-3:0]返回的结果是空。

列表操作

Python中的列表可以相加,甚至可以相乘:

if __name__ == "__main__":
    aList = [1, 2, 3]
    bList = [4, 5, 6]
    print aList + bList # [1, 2, 3, 4, 5, 6]
    print aList * 3     # [1, 2, 3, 1, 2, 3, 1, 2, 3]

in操作符可以用在List的if和for语句中:

if __name__ == "__main__":
    aList = [-1, 0, 1, 2, 3]
    for e in aList:
        print e
    if 0 in aList:
        print "yes"

del可以用在列表中用于删除元素:

if __name__ == "__main__":
    aList = [-1, 0, 1, 2, 3]
    del aList[0]    # del -1.
    del aList[0]    # del 0.
    print aList     # [1, 2, 3].

列表中的长度,最大值,最小值都有函数来判断:

if __name__ == "__main__":
    aList = [1, 2, 3, 4]
    print len(aList)    # 4
    print max(aList)    # 4
    print min(aList)    # 1

Python中提供了工厂方法list()来构建列表:

if __name__ == "__main__":
    aStr = "hello world"
    print list(aStr)         # ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

列表的方法

下面是列表的方法举例:

#coding=utf-8
#
# This file talks about list and tuple in Python.
#

if __name__ == "__main__":
    aList = [1, 2, 3, 4]
    aList.append(5)         # 添加元素.
    print aList             # [1, 2, 3, 4, 5].
    aList.append([5, 6])    # 添加元素,“一个”元素.
    print aList             # [1, 2, 3, 4, 5, [5, 6]].
    aList.extend([5, 6])    # 一次性追加序列中的多个元素, 不同于列表相加,这里直接改变了列表本身,而相加不会改变列表本身.
    print aList             # [1, 2, 3, 4, 5, [5, 6], 5, 6].
    print aList.count(5)    # 1 # 统计一个元素出现的次数,不会递归统计,所以结果是2,而不是3.
    print aList.index(5)    # 4 # 找到第一个匹配项的下标.
    aList.insert(2, "two")  # 指定位置插入元素.
    print aList             # [1, 2, 'two', 3, 4, 5, [5, 6], 5, 6].
    print aList.pop()       # 6 # 删除最后一个元素,并返回它.
    print aList.pop(0)      # 1 # 删除第一个元素,并返回它.
    print aList             # [2, 'two', 3, 4, 5, [5, 6], 5] # 通过pop()防范,元素已删除.
    aList.remove(5)         # 删除第一个匹配的元素.
    print aList             # [2, 'two', 3, 4, [5, 6], 5].
    aList.reverse()         # 列表反向存放.
    print aList             # [5, [5, 6], 4, 3, 'two', 2].
    aList.sort()            # 原地排序,所以会改变列表本身.
    print aList             # [2, 3, 4, 5, [5, 6], 'two'].

元祖的定义

元组跟列表类似。

Python中使用()来包含成员。

空的元组就是一对()。

元组中必须多于一个成员。

下面是一些例子:

if __name__ == "__main__":
    emptyTuple = ()             # Empty tuple.
    print emptyTuple            # ()
    aTuple = (1, 2)             # Ordinary tuple.
    print aTuple                # (1, 2)
    singleTuple = (1)           # This is not a tuple.
    print type(singleTuple)     # <type 'int'>.
    print singleTuple           # 1
    singleTuple_modify = (1,)   # This is a tumple.
    print singleTuple_modify    # (1,).

Python提供了tuple构造函数:

if __name__ == "__main__":
    print tuple([1, 2, 3])      # (1, 2, 3), list to tuple.
    print tuple("hello")        # ('h', 'e', 'l', 'l', 'o'), string to tuple.
    print tuple((1, 2, 3))      # (1, 2, 3), tuple to tuple.

元组的访问同列表,其他操作基本没有,因为它不可变

元组可以当作映射中的“键”来使用。

元组常用作函数或者方法的返回值(如果这个函数或者方法需要返回多个值的话)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值