对列表list的增删改、排序处理 (Python)

一、对列表增删改查

1、向列表增加元素

共有4种办法:

  • append(),在列表的末尾 增加 一个 元素
#append(),给列表末尾增加一个元素
lst = [0,1,2,3,4,5,6]
lst.append('ok')
print(lst)
>>> [o,1,2,3,4,5,6,'ok']
  • extend(), 在列表的末尾插入至少一个元素
#extend(),在元素末尾插入至少一个元素
lst1 = [0,1,2,3,4,5]
lst2 = ['ni', 'hao']
lst1.extend(lst2)
print(lst1) #将列表lst2看成一个元素,插入到列表lst1后面
>>> [o,1,2,3,4,5,'ni','hao']
  • insert(), 给列表中任意位置插入一个元素
lst1.insert(2,10)
print(lst1) #给索引值为2的位置上增加一个值,10
>>> [o,1,10,2,3,4,5,'ni','hao']
  • 切片,在列表的任意位置添加至少1个位置
#切片
lst3 = [0,1,2,3,4,5,6,7,8,9]
lst4 = ['hello', 'world']
lst3 [3: ] = lst4
print(lst3) #从lst3索引值为3的位置开始切片,代入lst4的内容,lst索引值为3的后面索引的值就不要了
>>> [0,1,2,'hello', 'world']

这里需要注意,切片添加值的同时,切片位置之后的原列表的值全部丢弃

2、删除列表元素

  • remove():
    一次只移除1个元素;
    若有重复元素,则移除第一个;
    元素不存在的话,就会报错
#remove(),从列表每次只移出1个元素;
#若有重复元素,移除的是第一个;如果元素不存在则会报错
lst = [0,1,2,3,4,5,6,6]
lst.remove(6)
print(lst)
>>> [o,1,2,3,4,5,6]
  • pop(), 删除的是对应索引值处的元素
#pop(),删除列表索引处的值
lst = [0,1,2,3,4,5,6,6]
lst.pop(5) #删除索引=5的值
print(lst)
>>>[o,1,2,3,4,6,6]
lst.pop() #没指定索引值,默认删除列表最后一个元素
print(lst)
>>>[o,1,2,3,4,6]
lst.pop(9) #索引值不存在,会报错
print(lst)
>>>error
  • 切片,切除至少1个元素,但是会产生一个新的列表对象
lst = [0,1,2,3,4,5,6,6]
new_lst = lst[1:5]
print('新列表',new_lst)
>>>[1,2,3,4]
  • clear(), 删除列表中的所有元素
#clear清除列表中所有元素
lst = [0,1,2,3,4,5,6,6]
lst.clear()
print(lst)
>>>[]
  • del lst,直接删除整个列表,该列表就不存在了

3.列表的修改

  • 在指定索引值处修改元素
#修改指定索引值的元素、或者修改指定切片内的值
lst = [10,20,30,40,50]
lst[3] = 100
print(lst)
"""将索引值=3的值修改为100"""
>>>[10203010050]
  • 在指定切片区域更改元素
lst = [10,20,30,40,50]
lst[1:3] = [111]
print(lst)
"""切片范围内的值进行修改"""
>>>[1011110050]

4、列表元素查询

-输入元素的 索引值 查询
(1)单个索引值查询单个元素

"""(1)获取列表中的单个元素(给定了索引,去找对应元素)"""
lst2 = [0, 1, 2, 3, 4, 5]
#正向索引从0开始到N; 反向索引从-N开始到-1; 如果没有对应索引值,输出error
print( lst2[5])
>>>5
print( lst2[-3])
>>>3
#print (lst2[10])  #没有该索引值,超出列表范围,报错

(2)切片范围,查询多个元素

"""(2)获取多个元素,不用索引,用 “切片” 操作"""
#切片的结果是原列表的部分拷贝,格式是( start, stop, end)
lst3 = [10, 20, 30, 40,50, 60]
print(lst3[1:3]) #没有指定step,默认步长为1
print(lst3 [ : 3:]) #没有指定start或者stop,就默认从端点起始或结束
print( lst3[1: :])
print( lst3[5:1]) #start= 5,stop=1,说明是负索引方向,但是默认step=1,是正索引方向,二者矛盾,切片值为空
print( lst3[5: :-1])#start=5,step=-1,负索引方向,终点默认是端点处,即stop=0
>>>[2030]
>>>[10,20,30]
>>>[20,30,40,50,60]
>>>[]
>>>[60,50,40,30,20,10]

二、对列表元素的排序操作

两种方式,区别在于是否影响排序前,列表内元素的原本顺序

1、在原列表元素的基础上排序,排完后原列表的元素顺序不变

调用的是sort()方法,默认按照 从小到大 的顺序将列表中的元素排列起来。也可以使用reverse = Ture,使用降序方法排列元素

"""lst = [10, 129,49, 28, 200,11]
lst.sort()
print(lst)
>>>[10,11,28,49,129,200]
lst.sort( reverse= True)
print(lst)
>>>[200,129,49,28,11,10]
lst.sort( reverse= False)
print(lst)
>>>[10,11,28,49,129,200]

Tips:
reverse = True时,可以设置为降序排列,那设置成False时,对应的就是升序

2、不改变原列表的元素排列顺序

调用内置函数sorted(),设置关键字reverse = Ture进行降序排列,原列表元素顺序不变

a = [10,28,12,98,33,2]
b = sorted(a)
print(b)
print(a)  #可以看到,b是a按升序排列的,并且a的原本顺序不变
c = sorted(a ,reverse=True)
print(c) #c是通过设置了reverse= Ture,将a的元素按照降序排列

一定注意: sorted()方法中设置reverse时的书写格式

三、生成列表的公式

[ x for x in range() ]

其中,x是列表元素的表达式,在range范围里选取对象,举例如下:

"""格式: [i for i in range()]
i,表示列表元素的表达式  """
a = [i for i in range(1,11)]
b = [i*i for i in range(1,11)]
c = [i*3 for i in range(1,11)]
print(a)
>>>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(b)
>>>[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
print(c)
>>>[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的列表是一种可变的数据类型,可以通过以下方法进行元素的增删操作: 1. 增加元素: - 使用`append()`方法在列表末尾添加一个元素。例如,`list.append(element)`将元素`element`添加到列表`list`的末尾。 - 使用`insert()`方法在指定的索引位置插入一个元素。例如,`list.insert(index, element)`将元素`element`插入到列表`list`的索引`index`位置。 2. 删除元素: - 使用`remove()`方法删除列表中的某个元素。例如,`list.remove(element)`将列表中的第一个匹配到的元素`element`删除。 - 使用`del`关键字通过索引删除列表中的元素。例如,`del list[index]`将索引为`index`的元素从列表中删除。 - 使用`pop()`方法删除指定索引位置的元素,并返回被删除的元素。例如,`list.pop(index)`将索引为`index`的元素从列表中删除,并返回该元素。 3. 修元素: - 通过索引直接赋值修列表中的元素。例如,`list[index] = new_element`将索引为`index`的元素替换为`new_element`。 下面是一些示例: ```python # 增加元素 my_list = [1, 2, 3] my_list.append(4) print(my_list) # 输出: [1, 2, 3, 4] my_list.insert(1, 5) print(my_list) # 输出: [1, 5, 2, 3, 4] # 删除元素 my_list.remove(2) print(my_list) # 输出: [1, 5, 3, 4] del my_list[0] print(my_list) # 输出: [5, 3, 4] removed_element = my_list.pop(1) print(my_list) # 输出: [5, 4] print(removed_element) # 输出: 3 # 修元素 my_list[0] = 6 print(my_list) # 输出: [6, 4] ``` 希望这能回答你的问题。如果还有其他疑问,请随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值