Python——列表的基本操作

列表:在python中,如果存储多个数据用列表。
列表是一个有序的,可修改,元素以逗号分隔,以中括号包围的序列。
列表的索引与字符串索引类似,但不完全相同,列表可以修改,所以我们可以通过列表索引修改列表。列表内元素是可变的,列表中的元素可以重复。
列表的定义:

name = [] #空列表

我们可以通过**type()**来查看变量的类型。

 type(name)
<class 'list'>

这里可以看到,name就是一个列表,一个空列表。接下来,我们可以向列表中添加元素,我们先来看下列表的内存地址,使用id()函数可查看列表中保存元素所在的内存地址,我们先重新定义一个含有元素的列表。

name = []
a = id(name)
print(a)
name.append('jk')
b = id(name)
print(b)
name.insert(1,'hi')
c = id(name)
print(c)

结果:

1737781446984
1737781446984
1737781446984

可以看出,向列表中添加元素,列表的内存地址没有变化,所以,用列表就可以防止内存占用过多,可以节省内存。
向列表中添加元素:

  1. append , 追加,再列表尾部加入指定元素:
name = ['jake','marry','hery','lucy',10]
name.append('hu')
print(name)
['jake', 'marry', 'hery', 'lucy', 10, 'hu']

在这里也发现了一个问题,如果是直接在print()里面打印添加的列表,就会出现这样的问题:
第一种:

name = ['jake','marry','hery','lucy',10]
name1 = name.append('hu')
print(name1)
None

第二种:

name = ['jake','marry','hery','lucy',10]
print(name.append('hu'))
None

为什么不能在更改的时候将列表保存到一个变量里面呢?
因为这个是往列表里面添加元素,列表的值发生了改变,所以不能直接打印方法,而是先添加,再打印才符合对应的逻辑。而之所以会输出None,因为打印的时候,name.append并没有返回值,所以打印出来的就是None。

  1. insert ,将指定的元素插入到对应的索引位上,注意负索引:
name = ['jake','marry','hery','lucy',10]
name.insert(0,'anna')
print(name)
['anna', 'jake', 'marry', 'hery', 'lucy', 10]
  1. extend, 将指定的元素依次追加到列表的尾部:
name = ['jake','marry','hery','lucy',10]
name1 = [1, 2, 3]
name.extend(name1)
print(name)
 ['jake', 'marry', 'hery', 'lucy', 10, 1, 2, 3]

删除列表中的元素:
1,pop 弹出,返回并删除指定索引位上的数据,默认删除索引为-1的数据;我们也可以用一个变量来存储通过函数pop()删除的值,如下:

name = ['jake','marry','hery','lucy',10]
name1 = name.pop()
print(name)
print(name1)
['jake', 'marry', 'hery', 'lucy']
10

pop()也可以删除指定元素,只需指出对应的索引:

name = ['jake','marry','hery','lucy',10]
name1 = name.pop(2)
print(name)
print(name1)
['jake', 'marry', 'lucy', 10]
hery

2,remove 从左往右删除一个指定的元素;

name = ['jake','marry','hery','lucy',10]
name.remove('marry')
print(name)
 ['jake', 'hery', 'lucy', 10]

3,del 删除整个列表或列表的数据,del是Python内置功能,不是列表独有的;

name = ['jake','marry','hery','lucy',10]
del name[0]
print(name)
['marry', 'hery', 'lucy', 10]

列表中元素修改:
直接赋值修改:

name = ['jake','marry','hery','lucy',10]
name[0] = 'petter'
print(name)
['petter', 'marry', 'hery', 'lucy', 10]

列表中元素的查找:
1,count 计数,返回要计数的元素在列表当中的个数;没有就返回0。

name = ['jake','marry','hery','lucy',10]
print(name.count('lucy'))
 1

2,index 查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错;注意:列表没有find查找方法。

name = ['jake','marry','hery','lucy',10]
print(name.index('lucy'))
3

3,in 查找元素是否在列表中,在输出true,否则false;

name = ['jake','marry','hery','lucy',10]
'lucy' in name
 True
name = ['jake','marry','hery','lucy',10]
'peter' in name
False

列表的排序:
1,reverse 顺序倒序

name = ['jake','marry','hery','lucy',10]
name.reverse()
print(name)
[10, 'lucy', 'hery', 'marry', 'jake']

*2,sort 按照ascii码表顺序进行排序

list()函数:
list(),以一个序列作为参数并把它转换为列表,如果参数是list,那么该参数就会被原样返回。如果定义了list这个变量,再用list()这个函数就会报错。

num = 'asdfg'
list(num)
['a', 's', 'd', 'f', 'g']
num = 'asdfg'
num1 = list(num)
print(num1)
''.join(num1)#将转换成列表的字符串重新转换成字符串
['a', 's', 'd', 'f', 'g']
'asdfg'

列表切片:
列表切片同字符串切片一样。包头不包尾

name = ['jake','marry','hery','lucy',10]
print(name[0:2])
 ['jake', 'marry']
name = ['jake','marry','hery','lucy',10]
print(name[0:4:2])
['jake', 'hery']

若步长为负,就是将列表顺序反过来,但是元素的下标并没有变,也就是说,反过来之后的第一个元素的下标就是初始列表的最后一个元素的下标。同样,name[start🔚step]的起始位和结束位同样倒序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值