010 Python初学笔记--列表元素的获取、交换、删除以及列表的分片

本文详细介绍了Python中列表的基本操作,包括通过索引获取元素、交换元素位置、删除元素的不同方法,以及列表分片技巧。同时,解析了一段复杂的条件表达式代码,探讨了其运行逻辑。

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

1.根据索引值获取列表中某位置的元素(编号从0开始):

>>> a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> a[0]
'Jasper'

2.交换列表中元素的位置(两种方法)

#方法一
>>> a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> a[0],a[1],a[2]=a[2],a[0],a[1]
>>> a
['Swan', 'Jasper', 'Kimi', 'Ursula', 'Elena']
#方法二
>>> a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> temp=a[0]
>>> a[0]=a[1]
>>> a[1]=temp
>>> a
['Kimi', 'Jasper', 'Swan', 'Ursula', 'Elena']

3.删除列表中的元素:

(1)remove(key):函数的参数必须是列表中存在的确定的某个元素

(2)del list[index]:删除列表中某个位置的元素;del list:删除整个列表

(3)pop():删除列表的最后一个元素并返回这个元素的值;pop(index):删除列表某个位置上的元素并返回这个元素的值

a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> #remove(key)
>>> a.remove('Jasper')
>>> a
['Kimi', 'Swan', 'Ursula', 'Elena']

>>> #del list[index]
>>> del a[2]
>>> a
['Kimi', 'Swan', 'Elena']

>>> #del list
>>> del a
>>> a
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    a
NameError: name 'a' is not defined

>>> a=['Jasper','Kimi','Swan','Ursula','Elena']
>>> #pop()
>>> a.pop()
'Elena'
>>> a
['Jasper', 'Kimi', 'Swan', 'Ursula']

>>> #pop(index)
>>> a.pop(2)
'Swan'
>>> a
['Jasper', 'Kimi', 'Ursula']

4.列表分片:一次从列表中获取多个连续元素,返回值为一个列表,

格式:list[start:stop],从编号start开始,获取stop - start个元素。

>>> a=['Jasper','Kimi','Swan','Ursula']
>>> #列表分片:
>>> a[1:3]
['Kimi', 'Swan']
>>> a[1:3]  #从编号1开始获取3-1=2个元素
['Kimi', 'Swan']

>>> #从开始获取元素
>>> a[:2]

['Jasper', 'Kimi']
>>> #获取从某一位置到最后一个元素
>>> a[3:]
['Ursula']

>>> #获取整个列表
>>> b=a[:]         #列表的拷贝
>>> b
['Jasper', 'Kimi', 'Swan', 'Ursula']
>>> c=a            #只是给列表a多起了一个名字,c与a是指向同一片列表空间的
>>> c
['Jasper', 'Kimi', 'Swan', 'Ursula']

5.这段代码: (x<y and [x] or [y])[0]是什么意思?先来看一下下面的运行结果:(下列代码中[y]相当于[1],也就是一个只含有一个元素的列表)

#代码段1
>>> x=0;y=1
>>> (x>y and [x] or [y])[0]     #False and [x] or [y] = [y]
1
>>> (x<y and [x] or [y])[0]     #True and [x] or [y] =[x]
0

#代码段2
>>> (x<y and x or y)
1

#代码段3
True
>>> not [0]
False

观察代码段1的最后一段代码的运行结果和代码段2的运行结果为什么不同?

代码段3说明只要列表不为空,那么就为True。然后根据逻辑运算得出(x>y and [x] or [y])的结果为[y],[y][0]=1;(x<y and [x] or [y])[0]的结果为[x],[x][0]=0

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值