python获取list元素里包含某个字符的位置_Python 内置类型全解析(2)

e0cc9b363c9487464d3d7963561064d2.png

5 Lists 列表型

列表是 Python 的主力数据类型。在 Python 程序中,会大量使用列表对象。

列表与字符串类似,它也是一系列对象的有序集合。所不同的是,列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表。事实上,列表中的对象可以是任何类型。列表中的值称为元素(element),也可称为列表项(item)。

5.1 列表声明

创建列表时,使用中括号包裹一系列以逗号分割的值即可,也可使用 list() 函数.

>>> a_list = ['a', 'b', 'example']        # 推荐方式
>>> a_list = list(('a', 'b', 'example'))  # list()函数中的参数必须是一个元组

列表中可以嵌套列表

>>> b_list = [1, 2.0, 'a', [10, 20]]

5.2 列表索引、切片

列表可当做以零为基点的数组使用。列表索引总是以零为基点的。可通过指定索引位置获取列表中的元素。

>>> a_list[0] 
'a'
>>> a_list[2]
'example'

使用负索引值可从列表的尾部向前计数访问元素。任何非空列表的最后一个元素总是 a_list[-1] 。

>>> a_list[-1] 
'example'
>>> a_list[-3]
'a'

如果负数令你混淆,可将其视为如下方式:a_list[-n] == a_list[len(a_list) - n] 。因此在此列表中, a_list[-3] == a_list[3 - 3] == a_list[0]。

列表和字符串一样,支持切片操作。定义列表后,可从其中获取任何部分作为新列表。该技术称为对列表进行切片 。

和字符串切片相同,切片索引包括起点,不包括终点。负的索引表示从右往左数。不指定第一个索引表示切片从头开始,不指定第二个索引表示切片到列表的最后。

>>> a_list
['a', 'b', 'mpilgrim', 'z', 'example']
>>> a_list[1:3]
['b', 'mpilgrim']
>>> a_list[1:-1]
['b', 'mpilgrim', 'z']
>>> a_list[0:3]
['a', 'b', 'mpilgrim']
>>> a_list[:3]
['a', 'b', 'mpilgrim']
>>> a_list[3:]
['z', 'example']
>>> a_list[:]
['a', 'b', 'mpilgrim', 'z', 'example']

切片操作放在等号左侧,还可进行赋值操作,表示在切片的位置增加新的值。

>>> t =['a','b','c','d','e']
>>> t[1:3] = ['x','y']
>>> t
>>> ['a','x','y','b','c','d','e']

5.3 列表拼接

列表的拼接可以使用 “+” 运算符、append 函数、extend 函数以及 insert 函数。

“+” 运算符连接列表以创建一个新列表。列表可包含任何数量的元素,没有大小限制,除非超出类内存的限制。

>>> a_list = ['a']
>>> a_list = a_list + [2.0, 3]
>>> a_list 
['a', 2.0, 3]

实际上,在进行连接操作时,将在内存中创建第二个列表。此时,新列表将会立即被赋值给已有变量 a_list。因此,实际上该行代码包含两个步骤:先连接并创建新的列表,在将新列表赋值给原变量。当处理大型列表时,该操作可能会暂时消耗大量内存。

append() 方法向列表的尾部添加一个新的元素,该方法中的参数是单个对象,这个对象可以使任何类型,甚至可以是列表类型。

>>> a_list.append(True)
>>> a_list
['a', 2.0, 3, True]

extend() 方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。

>>> a_list.extend(['four', 'Ω'])
>>> a_list
['a', 2.0, 3, True, 'four', 'Ω']

insert() 方法将单个元素插入到列表中。它接受两个参数,第一个参数是列表中将被顶离原位的第一个元素的位置索引,第二个参数是要插入的对象。

>>> a_list.insert(0, 'Ω')
>>> a_list
['Ω', 'a', 2.0, 3, True, 'four', 'Ω']

列表中的元素并不一定要是唯一的;比如说现有两个各自独立的元素,其值均为 'Ω':,第一个元素 a_list[0] 以及最后一个元素 a_list[6] 。

进一步看看 append() 和 extend() 的区别。

>>> a_list = ['a', 'b', 'c']
>>> a_list.extend(['d', 'e', 'f'])
>>> a_list
['a', 'b', 'c', 'd', 'e', 'f']
>>> len(a_list)
6
>>> a_list.append(['g', 'h', 'i'])
>>> a_list
['a', 'b', 'c', 'd', 'e', 'f', ['g', 'h', 'i']]
>>> len(a_list)
7

extend() 方法只接受一个参数,而该参数总是一个列表,并将列表 a_list 中所有的元素都添加到该列表中。append() 方法只接受一个参数,但可以是任何数据类型,如果餐数是列表,它会将列表整体插入到原对象中。在上面的例子中,a_list 在 append 之前有 6 个元素,然后将一个包含 3 个元素的列表 append 上去,结果得到一个 7 元素列表。为什么是 7 个而不是 9 个?因为最后一个元素(刚刚 append 的元素) 是当做列表对象整体添加到原对象中的,它没有进行拆分 。

5.4 在列表中检索值

count() 方法返回了列表中某个特定值出现的次数。

>>> a_list = ['a', 'b', 'new', 'mpilgrim', 'new']
>>> a_list.count('new')
2

in 运算符 用于判断某个值是否出现在列表中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值