数据类型--索引和切片(字符串、元祖、列表适用)

序列:

字符串,列表,元祖都被称为序列类型数据(可迭代、可被for循环的)

 

索引和切片的概念:
1、索引同样可以是负数,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而shoplist[-2]抓取序列的倒数第二个项目。


2、切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。
注意这与你使用的索引操作十分相似。记住数是可选的,而冒号是必须的。

3、切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片刀那里结束。如果不指定第一个数,python就从序列首开始。如果没有指定第二个数,则python会停止序列尾。

注意:
返回的序列从开始位置开始,刚好在结束位置之前结束。即开始位置是包办在序列切片中的,而结束位置被排斥在切片外。(顾头不顾尾)
shoplist[1:3]返回从位置1开始,包括位置2,但是停止在位置3的一个序列切片,因此返回一个含有两个项目的切片。
shoplist[:]返回整个序列的拷贝。你可以用负数做切片。
负数用在从序列尾开始计算的位置。例如:shoplist[:1]会返回除了最后一个项目包含所有项目的序列切片。

 

索引:

例如:a='abcde'  每个符号都有自己的一个数据位置,可以通过索引来找到独立的字母位置,在abcde的字母中的数据位置分别为01234。可以使用下面语法进行提取数据位置:

1 >>> a='abcde'
2 
3 >>> a[0]
4 'a'
5 
6 >>> a[1]
7 'b'

但是当需要提取2个字符串位置的时候这时就会出现报错:

 1 >>> a[0][1]
 2 
 3 Traceback (most recent call last):
 4 File "<stdin>", line 1, in <module>
 5 IndexError: string index out of range
 6 
 7 
 8 或者,连续提取两个字母时报错:
 9 >>> a[0]a[1]
10   File "<stdin>", line 1
11     a[0]a[1]
12         ^
13 SyntaxError: invalid syntax

如果想要提取2个字符串位置可以使用 '+'进行连接:

1 >>> a[0]+a[1]
2 'ab'

 

切片

由于每个字符都有自己的索引,可以通过索引提取字符串的一个范围。
语法:a [ 起始值 :结束值:步长:[方向值(-1)] ]
语法:a [ 从第几位开始:到第几位结束:每隔几位取一次值:[方向值(-1)] ]

 1 1、从前面开始取一直到第四位:
 2 >>> a[:4]
 3 'abcd'
 4  
 5  
 6 2、从第四个开始取值
 7 >>> a[4:]
 8 'e'
 9  
10  
11 3、从第二个开始去到最后
12 >>> a[2:]
13 'cde'

 

步长值

每隔多少个字符取一次值。

语法:a [ 起始值 :结束值:步长:[方向值(-1)] ]
语法:a [ 从第几位开始:到第几位结束:每隔几位取一次值:[方向值(-1)] ]

 1 1、每隔1个字符取值
 2 >>> a[::1]
 3 'abcde'
 4  
 6 2、每隔2个字符取值
 7 >>> a[::2]
 8 'ace'
 9  
11 3、每隔3个字符取值
12 >>> a[::3]
13 'ad'
14  
16 4、通过负数的方式取值:
17 从倒数第一位取值
18 >>> a[-1]
19 'e'
20  
22 5、从倒数第二位取值
23 >>> a[-2]
24 'd'
25 
26 >>> a[-4:-1]
27 'bcd'

 

反向取值

步长不包含本身。需要提前取值。
python默认是从左向右取值。一般不用负数取值,但是如果是反向取值,还是需要用负数。

语法:a [ 起始值 :结束值:步长:[方向值(-1)] ]
语法:a [ 从第几位开始:到第几位结束:每隔几位取一次值:[方向值(-1)] ]

1 >>> a[-1:-3:-1]
2 'ed'
3 
4 >>> a[-1:-5:-1]
5 'edcb'
6 
7 >>> a[-1:-6:-1]
8 'edcba'

转载于:https://www.cnblogs.com/abobo/p/8033250.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
字符串列表元组和字典都是Python中常用的数据类型字符串是由字符组成的序列,可以使用索引来访问字符串中的单个字符。例如,可以使用字符串[::-1]来反转字符串列表是由多个元素组成的有序序列,可以包含任意类型的元素。可以使用索引来访问列表中的元素,并且可以对列表进行添加、删除和修改等操作。 元组也是由多个元素组成的有序序列,与列表类似,但是元组是不可变的,即不能修改元组中的元素。 字典是由键值对组成的无序集合,每个键值对都是字典中的一个元素。可以使用键来访问字典中的值,并且可以对字典进行添加、删除和修改等操作。 对于字符串的操作,可以使用title()方法将字符串中每个单词的首字母大写,或者使用capitalize()方法将字符串的第一个字符大写。 对于列表元组的操作,可以使用索引来访问元素,使用append()方法在列表的末尾添加元素,使用remove()方法删除指定的元素。 对于字典的操作,可以使用键来访问字典中的值,使用update()方法添加或修改字典中的键值对,使用del关键字删除指定的键值对。 例如: 字符串操作: name = 'abcdef' reversed_name = name[::-1] print(reversed_name) # 输出:fedcba 列表操作: numbers = [1, 2, 3, 4, 5] numbers.append(6) numbers.remove(3) print(numbers) # 输出:[1, 2, 4, 5, 6] 元组操作: fruits = ('apple', 'banana', 'orange') print(fruits) # 输出:banana 字典操作: person = {'name': 'Alice', 'age': 25} print(person['name']) # 输出:Alice person.update({'age': 26, 'gender': 'female'}) del person['age'] print(person) # 输出:{'name': 'Alice', 'gender': 'female'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值