第二章Python的List和Tuples

本文深入解析 Python 中的 List 数据结构,包括创建、截断、添加元素、查找与移除元素的方法,并通过实例展示如何高效使用 List 进行数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

List

一、创建一个List

a_list=['a','b','mp3','z','example']
a_list[0]
a
a_list[-1]
example

1、List是个顺序排列的集合

2、List是个从0开始计数的数组,第一个元素肯定是a_list[0]

      所以最后一个元素是   List长度-1

3、使用负数倒序访问List元素,List的最后一个元素必定是a_list[-1]

       负数索引值的计算公式 

   a_list[-n] == a_list[len(a_list) - n]

二、截断一个List

可以从一个已经定义好的List中获取特定位置的几个元素

在list下标中指定两个索引值,这样list的返回值就是包含特定元素的新list

>>> a_list
['a', 'b', 'mpilgrim', 'z', 'example']
>>> a_list[1:3]           1
['b', 'mpilgrim']
>>> a_list[1:-1]          2
['b', 'mpilgrim', 'z']
>>> a_list[0:3]           3
['a', 'b', 'mpilgrim']
>>> a_list[:3]            4
['a', 'b', 'mpilgrim']
>>> a_list[3:]            5
['z', 'example']
>>> a_list[:]             6
['a', 'b', 'mpilgrim', 'z', 'example']
1、从1开始但不包含3的List

2、从list的第二个元素到list最后一个元素之间的,但不包括最后一个

3、按下标从0到3的,但不包括3的

       效果同上,0可以省略

4、从下标n到数组最后一个,包括最后一个

5、list的全部元素


三、向List添加元素

>>> a_list = ['a']
>>> a_list = a_list + [2.0, 3]         1
>>> a_list                             2
['a', 2.0, 3]
>>> a_list.append(True)                3
>>> a_list
['a', 2.0, 3, True]
>>> a_list.extend(['four', 'Ω'])      4
>>> a_list
['a', 2.0, 3, True, 'four', 'Ω']
>>> a_list.insert(0, 'Ω')             5
>>> a_list
['Ω', 'a', 2.0, 3, True, 'four', 'Ω']
1、使用+号操作符连接list创建新的list,list没有数量限制,但这种操作实际是创建了2个list对内存消耗比较大

2、list可以装载任意数据类型的元素,不必是同一类型

3、append()方法可以将一个元素(任意数据类型)添加到list末尾

4、List实际是个类,创建一个List实际上是实例化一个类,extend()方法接收一个list作为参数并把新list的每个元素添加到原有的list中

5、insert()方法添加一个元素到list中,第一个参数是添加到list的位置的索引值
      list的元素可以重复

四、在List中查找值

>>> a_list = ['a', 'b', 'new', 'mpilgrim', 'new']
>>> a_list.count('new') ①
2
>>> 'new' in a_list ②
True
>>> 'c' in a_list
False
>>> a_list.index('mpilgrim') ③
3
>>> a_list.index('new') ④
2
>>> a_list.index('c') ⑤
Traceback (innermost last):
File "<interactive input>", line 1, in ?
ValueError: list.index(x): x not in list
1、count()方法返回查找值在list中的数量

2、如果只想知道是否包含查找的值可以使用in,返回True 或 False,这种方法要比count()方法速度快

3、使用index()方法返回值所在的索引值,也可以添加第二个参数作为查找开始位置,第三个参数作为查找结束为止

4、index()方法只返回第一次查找到的位置

5、因为-1在Python中是有意义的索引值,所以index()方法没有找到对应的位置会抛异常


五、从List中移除元素

使用del删除

>>> a_list = ['a', 'b', 'new', 'mpilgrim', 'new']
>>> a_list[1]
'b'
>>> del a_list[1] 1
>>> a_list
['a', 'new', 'mpilgrim', 'new']
>>> a_list[1] 2
'new'
1、使用del命令删除特定位置

2、删除后,后面的元素会自动填补被删除的下标,下标之间不会有空隙

使用remove方法删除

>>> a_list.remove('new')       1
>>> a_list
['a', 'mpilgrim', 'new']
>>> a_list.remove('new')       2
>>> a_list
['a', 'mpilgrim']
>>> a_list.remove('new')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
1、使用remove()方法,remove方法接受一个值,并将第一个遇到的删除,同样下标无间隙

2、使用remove方法未能移除一个值时会抛异常

使用pop方法移

>>> a_list = ['a', 'b', 'new', 'mpilgrim']
>>> a_list.pop() 1
'mpilgrim'
>>> a_list
['a', 'b', 'new']
>>> a_list.pop(1) 2
'b'
>>> a_list
['a', 'new']
>>> a_list.pop()
'new'
>>> a_list.pop()
'a'
>>> a_list.pop() 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: pop from empty list
1、调用pop()方法不给参数,将默认删除list的最后一个元素

2、调用pop()方法并传一个索引值,将会删除特定位置的值

3、在空的list调用pop()方法会抛异常


七、使用boolean等式判断list是否为空

>>> def is_it_true(anything):
... if anything:
... print("yes, it's true")
... else:
... print("no, it's false")
...
>>> is_it_true([]) 1
no, it's false
>>> is_it_true(['a']) 2
yes, it's true
>>> is_it_true([False]) 3
yes, it's true
1、在boolean等式中,空的list返回false

2、只要有一个元素,list返回true

3、是要有一个元素就是真,和元素的数据类型无关



Turples

tuple是个不可变list

>>> a_tuple = ("a", "b", "mpilgrim", "z", "example") 1
>>> a_tuple
('a', 'b', 'mpilgrim', 'z', 'example')
>>> a_tuple[0] 2
'a'
>>> a_tuple[-1] 3
'example'
>>> a_tuple[1:3] 4
('b', 'mpilgrim')
1、tuple与list定义的方式相同,只是全部元素被()包裹而不是[]

2、tuple的元素顺序是既定的,索引值从0开始

3、tuple也可以使用负数索引

4、tuple也可以截断,截断后返回一个新的tuple

5、tuple没有append,extend,insert,remove,pop方法

6、tuple可以查找变量

7、tuple判断空的方式与list相同

8、创建一个元素的tuple,必须在第一个元素后加逗号,不加的话python会认为多了对括号

   a_tuple = ('a',)
9、使用tuple一次对多个变量赋值

>>> v = ('a', 2, True)
>>> (x, y, z) = v 1
>>> x
'a'
>>> y
2
>>> z
True
v是个tuple变量,同时为xyz三个变量赋不同的3个值







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值