List列表

List

  1. 字面量

    [元素1,元素2,元素3,·······]

  2. 定义变量

    变量名 = [元素1,元素2,元素3,·······]

  3. 定义空列表

    变量名 = [ ]

    变量名 = list( )

  4. 嵌套列表

    [[元素1,元素2] , [元素3,元素4] , ········]

  5. 列表的下标索引

    从左向右,标记为从0开始递增

    从右向左,则最右边的标号为-1,右向左递减

    list = ['Tom','Lily','Rose']
    print(list[-1])------>Rose
    print(list[2])------>Rose
    print(list[0])------>Tom
    

    嵌套列表

    list = [[1,2],3,[4,5,6,7],8,9,0]
    print(list[2][2])------>6
    

有关列表的方法

  1. 查询(查找下标)

    功能:查找指定元素在列表中的下标,找不到就报错ValueError

    语法:列表名.index(元素)

  2. 修改特定位置的元素值(重新赋值)

    语法:列表名[下标]=值

  3. 元素插入(指定位置插入元素)

    列表名.insert(下标,元素)

  4. 把指定元素追加到列表尾部

    列表名.append(元素)

    列表名.extend(其他数据容器)

    把其他数据容器内容取出,依次追加到列表尾部

  5. 删除元素

    1. del 列表名[下标],也可以带 切片 和 步长
    2. 列表名.pop(下标),可以用变量接收,原理是把要删除的元素返回出去,默认删除最后一个
  6. 删除指定元素(删除元素在列表中的第一个匹配项)

    列表名.remove(元素)

    list = [1,2,3,'asd',123,'bsdfg']
    a = list.remove(123)
    print(list)
    ------------------------
    [1, 2, 3, 'asd', 'bsdfg']
    
  7. 清空列表

    列表名.clear()

  8. 统计某元素在列表中的数量

    列表.count(元素)

  9. 统计列表中一共有几个元素

    len(列表)

  10. 切片:输出时要在后面加冒号,

a[-1]为按索引取值,a[-1,]才是切片(输出的是列表类型)

a = ['a',4,1,'t','c']
print(a[-1],'|',a[-1:])
----------------------------------
c | ['c']
  1. 生成一个有序列表

    li = list(range(10)),li是一个从0开始的,长度为10的列表

  2. 生成指定个数的随机列表

    li = [random.randint(0,100) for _ in range(1000)]

    表示0到100内的随机数,一共生成1000个,每个数的个数都是随机的

  3. 列表的排序

    列表名.sort(key = 选择排序依据的函数, reverse = Ture/False)

    key:传入一个函数,表示把列表的每个元素都传入函数中,返回排序依据

    reverse:是否翻转排序结果,Ture为降序,False为升序

    单用.sort(),默认是从小到大排

    li = [(2, 2), (3, 4), (4, 1), (1, 3)]
    li.sort(key=lambda li: li[1],reverse=False)
    print(li)
    ----------------------------------------------
    [(4, 1), (2, 2), (1, 3), (3, 4)]
    
    • lambda li: li[1] # 这是一个匿名函数,传入的参数是 li ,返回的是列表中每个元素的第二个元素,也就是按照元素的第二个元素来排序;因为reverse值为False,所以排序为升序
  4. 列表的翻转

    列表名.reverse()

    l1 = [3,5,4,7,1,8,9,2,6]
    l1.reverse()
    print(l1)------->[6, 2, 9, 8, 1, 7, 4, 5, 3]
    
  5. 类型强转:

    list(容器)

    tuple1 = (1,4,2,5,'dasf','!+@#_')
    print(list(tuple1))------->[1, 4, 2, 5, 'dasf', '!+@#_']
    
    set1 = {1,2,3,6,'segsdfga','1414^$#^'}
    print(list(set1))---------->[1, 2, 3, 6, 'segsdfga', '1414^$#^']
    
    dict1 = {1:'afa','2':123,'qwe':[1,2,3],3:(1,2)}
    print(list(dict1))--------->[1, '2', 'qwe', 3]
    # 可见,如果是字典类型强转为列表类型,只会取key的值
    
    str1 = 'fad3124r'
    print(list(str1))------->['f', 'a', 'd', '3', '1', '2', '4', 'r']
    # 把字符串拆分为单个字符作元素
    
  6. 连接符.join(序列)

    用连接符把序列中的元素连接起来,以字符串的形式输出

    users = ['qdaw','afaf',123,'qweas']
    users[-2] = '123'
    str1 = '_'.join(users)
    print(str1)
    ---------->qdaw_afaf_123_qweas
    
  7. 列表也可以相加也可以与整数相乘

    # 列表相加
    l1 = [3,5,4,7,1,8,9,2,6]
    l2 = ['Yuuka','Noa','Yoimiya']
    print(l1+l2)----->[3,5,4,7,1,8,9,2,6,'Yuuka','Noa','Yoimiya']
    
    # 列表与整数相乘
    l2 = [1,2,3]
    print(l2*3)----->[1,2,3,1,2,3,1,2,3]
    
  8. 倒序删除元素
    题目:l1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],删除索引为奇数的元素
    通过index判断除2是否余1来用pop按索引删除,但是,你会发现,这样做思路没错,但是删不掉预想中的元素,因为这个方法是正向遍历列表,当前面一个元素被删除,那么后面的元素就会向前进一位,那么元素与其对应的下标索引就错位了。因此,可以用倒序的方法删除元素

for i in range(len(l1)-1,-1,-1):
    if i % 2 == 1:
        l1.pop(i)
print(l1)----->[0, 2, 4, 6, 8]

# 也可以用一个更简单的方法
del l1[1::0]

# 也可以这样(虽然是正向的)
for i in range(1,len(l1),2):
    l1.remove(i)

循环一个列表时,不要改变列表的大小,否则有可能影响最后的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值