python列表操作

列表由一系列按特定顺序排列的元素组成,用 [ ] 来表示,可以存放各种数据类型

一、列表生成式

# 1. 直接生成列表
list1 = [1,"str",True]

# 2. 列表生成式,例如用range生成数字
list2 = range(1,5)            // [1,2,3,4]

# 3. 列表推导式(根据映射方式)
# 例如,如下生成的列表为range(1,5)元素x ==> x平方生成的列表
list3 = [x**2 for x in range(1,5)]  //[1,4,9,16]

 二、列表的增删改查

(1)增

  append(obj):在列表最后添加元素

list = ["a","b","c"]
list.append("d")
print(list)              // ["a","b","c","d"]

  insert (index,obj): 在列表指定位置插入元素

list = ["a","b","c"]
list.insert(1,"d")     //在索引为1处插入元素
print(list)            //['a', 'd', 'b', 'c']

 extend方法:  list.extend(seq)  追加列表

list1 = ["a","b","c"]
list2 = [1,2,3]
list1.extend(list2)   // 在list1中追加list2
print(list1)          // ['a', 'b', 'c', 1, 2, 3]

 (2)删

 del方法:del list[index]

list = ["a","b","c"]
del list[0]       // 删除索引为0的元素
print(list)       // ["b","c"]

pop方法:list.pop([index]) 默认index为-1,即删除最后一个元素,会返回删除的元素值

list = ["a","b","c"]
num = list.pop(2)    // 删除索引为2的元素
print(num)           // 返回删除的元素 "c"
print(list)          // ["a","b"]

remove方法:list.remove(value) ,移除指定元素,若有多个相同元素,则移除最左边的

list = ["a","b","c"]
list.remove("a")       // 移除“a”
print(list)            //["b","c"]

(3) 改:根据索引来改元素

list = ["a","b","c"]
list[0] = 1        
print(list)      //[1,"b","c"]

(4) 查

  a. 获取根据索引来获取单个元素 list[index] 

  b. 获取指定元素的索引 list.index(value,[start,end])  若在指定范围有多个相同元素,则默认为最左边的元素索引

list = ["a", 'b', 'c','b','b','d']
idx = list.index("b",2,5)   //在[2,5]索引区间获取b的索引
print(idx)                  //3

  c.  获取指定元素个数 list.count(value)

list = ["a", 'b', 'c','b']
num = list.count("b")
print(num)            //2
 

  d. 列表切片 list[start:end:step]  默认start=0,end为列表长度,step=1

     特别 list[::-1] 为反转列表

list = [1,2,3,4,5,6]
new = list[::]           
print(new)         //[1,2,3,4,5,6]

 

 三、列表的遍历操作

  1. 根据元素进行遍历

list = [1,2,3,4]
for item in list:
    print(item)  

//结果
1
2
3
4       

  2. 根据元素索引进行遍历

list = [1,2,3,4]
for index in range(len(list)):
    print(index,list[index])

// 结果
0 1
1 2
2 3
3 4

  3. 通过遍历枚举对象

       通过枚举函数enumerate(seq,[start=0]) 将一个可遍历的对象(如列表,元组等)组合为一个索引序列

item = ["a","b","c"]
print(list(enumerate(item)))
                    // [(0, 'a'), (1, 'b'), (2, 'c')]
for index,value in list(enumerate(item)):
    print(index,value)

//结果
0 a
1 b
2 c

  4. 通过迭代器来遍历:迭代器有一些特性,可看博客其他文章,这里只讲方法

list = ["a","b","c"]
# 构造迭代器
item = iter(list)
for item in list:
    print(item)     


# 或者用next()来遍历
# 注意每次使用需要生成新的迭代器
item= iter(list)
print(next(item))    //"a"
print(next(item))    //"b"
print(next(item))   //"c"

四、其他相关操作

 sorted 函数:    sorted(list,key=keysort,reverse=True)  不会改变原列表

list = [("a",12),("b",11),("c",10)]

def keysort(item):       // 定义一个关键字返回函数
    return item[1]       // index=1返回

new_list = sorted(list,key=keysort,reverse=True) 
                         //返回index=1排序,reverse默认为False,升序排列
print(new_list)          // [('a', 12), ('b', 11), ('c', 10)]

  sort()函数 :list.sort(key=keysort,reverse=True)   会改变原列表

  reverse()函数:list.reverse()   反转列表,会改变原列表

切片反转:list[::-1]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值