Python教程:列表、元组,以及序列的索引与切片

Python教程:列表、元组,以及序列的索引与切片


发布日期: 1970-01-01 更新日期: 2015-01-29 编辑:giser 浏览次数: 5077

标签:

摘要: 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了。只不过在 你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割。 列表...

列表

list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了。只不过在 你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割。 列表中的项目应该包括在方括号中,这样Python就知道你是在指明 一个列表。一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是 可变的 数据类型,即这种类型是可以被改变的。注意,列表与数组不同(尽管都是在方括号中)。Python的列表中可以存储不同的数据类型: list_val = [1, '3', 5 ,'4'] 是合理的。

    # -- coding:utf-8 --
    print('=' * 8)
    list_val = range(5,0, -1) # 生成list
    print(list_val)
    print('=' * 8)
    list_val.append(6)
    print(list_val)
    print('=' * 8)
    list_val = list_val + [7,8]
    print(list_val)
    print('=' * 8)
    list_val.extend([9, 10])
    print(list_val)
    print('=' * 8)
    list_val.insert(5, 5)
    print(list_val)
    print('=' * 8)
    tep_a = list_val.pop()
    print(list_val)
    print(tep_a)
    print('=' * 8)
    tep_a = list_val.pop(5)  # 5为索引值
    print(list_val)
    print(tep_a)
    print('=' * 8)
    val_index = list_val.index(3)  # 得到值为3的索引
    print(list_val)
    print(val_index)
    print('=' * 8)
    list_val.remove(3)  # 3要移去的值,不存在的话会引发异常
    print(list_val)
    print(val_index)
    print('=' * 8)
    for val in list_val:
        print(val)
    print('=' * 8)
    print(len(list_val))
    print('=' * 8)
    list_val.sort()
    print(list_val)
    print('=' * 8)
    list_val.reverse()
    print(list_val)

元组

元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。元组和列表可以进行转换:

    a = range(8)
    print(a)
    b = tuple(a)
    print(b)
    c = list(b)
    print(c)

像元组一样看待字符串

字符串具备很多元组的特征,这点看起来不是非常明显。与元组不同的是,字符串内部的各个成员都是字符。

    str_val = 'Hello, Python!'
    print(len(str_val))
    print(str_val.index('P'))
    for x in str_val:
        print(x)

序列

列表、元组和字符串都是序列,但是序列是什么,它们为什么如此特别呢?序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。 下面例子以列表为例,但对于元组、字符串也都是适用的。

    # -- coding:utf-8 --
    list_val = range(8,0, -1)
    print(list_val)
    index_list = range(8)
    for index in index_list:
        print('  Index: %d'%(index))
        print(list_val[index])
    print(list_val[-1])
    print(list_val[-2])
    # 切片
    print(list_val[2:])
    print(list_val[:-2])
    print(list_val[2:-2])
    print(list_val[:])

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org