前言:数据结构。数据结构是以某种方式(如通过编号)组合起来的数据
一、 序列概述
Python内置了多种序列,如列表与元组。还有一个比较重要的序列是字符串,这将会在另外一篇博客中详述。
列表与元组的主要不同点在于:列表是可以修改的,而元组不可以。这意味着列表适用于需要中途添加元素的情形,而元组适用于出于某种考虑需要禁止修改序列的情形。禁止修改序列通常
出于技术方面的考虑,与Python的内部工作原理相关,这也是有些内置函数返回元组的原因所在。
在你自己编写程序时,几乎在所有情况下都可使用列表来代替元组。一种例外情况是将元组用作
字典键,在这种情况下,不能使用列表来代替元组,因为字典键是不允许修改的。
序列可以包含其他序列,所以可创建一个有数据库中的成员组成的列表:
curry = ['Stephen Curry', 34]
james = ['LeBron James', 38]
irving = ['Kyrie Irving', 30]
datebase = [curry, james, irving]
print("输出结果:", datebase)
#输出结果: [['Stephen Curry', 34], ['LeBron James', 38], ['Kyrie Irving', 30]]
干货时间:Python支持一种数据结构的基本概念,名为容器(container)。容器基本上就是可包含其他对象的对象。两种主要的容器是序列(如列表和元组)和映射(如字典)。在序列中,
每个元素都有编号,而在映射中,每个元素都有名称(也叫键)。有一种既不是序列也不是映射的容器,它就是集合(set)。
二、通用常用的序列操作
1、索引
序列中的所有元素都有编号——从0开始递增。看我操作:
getstring = 'contrement'
print(getstring, getstring[0])
#contrement c
干货时间:字符串就是由字符组成的序列。索引0指向第一个元素,这里为字母c。不同于其他语言,Python没有专门表示字符的类型,因此一个字符就是表示包含一个元素的字符串。
getstring = 'contrement'
print(getstring, getstring[0],getstring[-1])
#contrement c t
getstring = 'contrement'
print(getstring, 'contrement'[-10])
#contrement c
Store = input('Store: ')
print(Store[2] + Store[3] + Store[4] + Store[5])
#Store: i like meijia zhu
# like
2、切片
除使用索引来访问单个元素外,还可使用切片(slicing)来访问特定范围内的元素。因此可以使用两个索引,用冒号分隔:
Tab = 'Love is unwavering'
print(Tab[0:5])
#Love
number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(number[4:7])
print(number[0:1])
print(number[-3:-1])
#[5, 6, 7]
#[1]
#[8, 9]
进阶操作:
进阶一:
隐式:如果切片结束于序列末尾,可省略第二个索引,同理,切片开始是序列开始,可省略第一个索引
number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(number[4:7])
print(number[0:1])
print(number[-3:-1])
print(number[:3])
print(number[:])
'''
Love
[5, 6, 7]
[1]
[8, 9]
[1, 2, 3]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
'''
方法实例:
提取域名:
# 从类似于http://www.something.com的URL中提取域名
url = input('Please enter the URL:')
domain = url[11:-4]
print("Domain name: " + domain)
'''
Please enter the URL: http://www.python.org
Domain name: python
'''
进阶操作二:
步长:执行切片操作时,你显式或隐式地指定起点和终点,但通常省略另一个参数,即步长。
number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(number[0:10:1])
print(number[0:10:2])
print(number[::3])
print(number[5:9:-2])
print(number[10:0:-1])
'''
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 3, 5, 7, 9]
[1, 4, 7, 10]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
'''
步长为负数时,表示从右往左提取元素。
既步长为正数时,它从起点移到终点,而步长为负数时,它从终点移到起点。