Python基础(一)---【07】列表

列表介绍

  • 什么是列表?

    我们去逛超市,首先会推一个小推车,想买什么东西了,直接把东西放在购物车里面,等选完之后就可以一起结账,带东西回家~

    而这个车子就可以理解为列表,里面放的是各种各样的物品

    也就是说,列表就是多个元素的集合,是一个容器!

    • 购物车:一个列表
    • 物品:列表内的元素
  • 定义一个列表:

    t_list = [1,"a"]
    
  • 列表的循环遍历

    >>> t_list = [1,"a"]
    >>> for i in t_list:
    ...     print(i)
    ...     print("类型是:"+ str(type(i)))
    ...
    返回结果:
    1
    类型是:<class 'int'>
    a
    类型是:<class 'str'>
    

    也可以使用while循环

    >>> t_list = [1,"a"]
    >>> i = 0
    >>> while i < len(t_list):
    ...     print(t_list[i])
    ...     i += 1
    ...
    返回结果:
    1
    a
    
  • 列表的相关操作【增、改、查、删、排序】

    • 增加元素【append、extend、insert】

      • append【增加单个元素,添加一个列表】
        >>> # 添加单个元素
        >>> t_list = [1,"a"]
        >>> t_list.append('b')
        >>> t_list
        [1, 'a', 'b']
        >>> # 添加一个列表
        >>> t_list = [1, 'a', 'b']
        >>> t3 = [3,"d"]    # 定义一个新的列表t3
        >>> t_list.append(t3)   #   向列表t_list中添加另一个列表list2
        >>> t_list
        [1, 'a', 'b', [3, 'd']]
        
      • extend【将另一个列表中的元素逐一添加到当前列表中】
        >>> t_list  #   查看当前列表t_list的内容
        [1, 'a', 'b']
        >>> list2 = [2,'c']
        >>> t_list.extend(list2)    #   向列表t_list中添加另一个列表list2中的元素,返回一个新的列表
        >>> t_list
        [1, 'a', 'b', 2, 'c']
        >>>
        
      • insert【insert(index,item)在指定位置index前插入元素item】
        >>> t_list  #   查看当前列表t_list的内容
        [1, 'a', 'b', [3, 'd']]
        >>> t_list.insert(1,"item") #   在下标为1的位置a前面插入元素 item
        >>> t_list
        [1, 'item', 'a', 'b', [3, 'd']]
        >>>
        
        
    • 修改元素【修改元素内容】

      • 修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
      >>> t1 = ["我","爱","你"] # 定义一个列表t1
      >>> t1 # 查看列表内的元素
      ['我', '爱', '你']
      # 修改“爱”,观察知道“爱”的下标为1
      >>> t1[1] = "恨"
      >>> t1 # 修改后结果
      ['我', '恨', '你']
      >>>
      
    • 查找元素【in、not in、(index、count,上一篇已经讲过就不再描述)】
      所谓查找,就是看看指定的元素是否存在

      • in、not in
      >>> t1
      ['我', '恨', '你']
      >>> str2 = '恨'
      >>> str3 = 'evile'
      ++++++++++++++++in代码展示+++++++++++++++++++
      >>> if str2 in t1:
      ...     print('字符存在!')
      ... else:
      ...     print('str2不在t1列表时,我就出现')
      ...
      # 返回结果:
      字符存在!
      ++++++++++++++++not  in代码展示+++++++++++++++++++
      >>> if str3 not in t1:
      ...     print("str3不在列表t1中!")
      ... else:
      ...     print("str3在列表t1中,我就会出现!")
      ...
      # 返回结果:
      str3不在列表t1中!
      >>>
      
    • 删除元素【del、pop、remove、】

      • del:根据下标删除
      • remove:根据元素的值删除
      • pop:删除最后一个元素

      代码示例:

      # del 删除元素
      >>> list_2 = ["a","b","c","d","e"]
      >>> del list_2[2]
      >>> list_2
      ['a', 'b', 'd', 'e']
      # remove 删除元素
      >>> list_2.remove("b")
      >>> list_2
      ['a', 'd', 'e']
      # pop 删除元素
      >>> list_2.pop()
      'e'
      >>> list_2
      ['a', 'd']
      

      从上面可以看到,最后的结果只剩下a和b两个元素。

    • 排序 【sort、reverse】

      • sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
      • reverse方法是将list逆置。
      # sort 示例
      >>> num = [2,1,3,4,9,5,7]
      >>> num.sort()
      >>> num
      [1, 2, 3, 4, 5, 7, 9]
      # sort中使用reverse方法,实现倒排序
      >>> num = [2,1,3,4,9,5,7]
      >>> num.sort(reverse=True)
      >>> num
      [9, 7, 5, 4, 3, 2, 1]
      >>>
      # reverse 方法单独使用,实现列别反转
      >>> num = [2,1,3,4,9,5,7]
      >>> num.reverse()
      >>> num
      [7, 5, 9, 4, 3, 1, 2]
      >>>
      
    • 列表的嵌套

      一个列表中的元素,可以是单个字符、数字,也可以是一个列表,那么这时候就说这是列表的嵌套。

      list_1 = [ [a,b],[c,d],[e,f] ]

      在程序中,列表内不仅可以是列表,也可以是元组,又可以是字典,还可以是单个的字符、数字等等。

      在以后的工作中,我们会经常的遇到各种结构的数据

思考

有三个货架,每个货架上有4个位置可以放物品,现在有12种物品需要摆放进去,问怎么实现:随机摆放物品且均匀分配完所有物品

点击显示真代码

哈哈~~没想到吧,这里没有代码~

自己先思考吧,骚年~~

点击显示假代码

import random
import functools

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
a2 = [[0 for col in range(3)] for row in range(4)]
a1 = [[], [], []]
#复制列表,就是为了到下面好删除,省去判断重复值这种麻烦事
tmp = list

#外层一维
for i in range(3):
    #里层二维
    for j in range(4):
        #从某个列表具体的数中取值,每次取一个,返回是一个[3]这种形式的
        val = random.sample(tmp,1)
        #所以需要reduce函数把这个结果变成单纯的数字,map函数不好使
        val1 = functools.reduce(int, val)
        #追加进列表
        a1[i].append(val1)
        #追加进去的那个直接扔掉不要
        tmp.remove(val1)
print(a1)
#最后删除空的这个tmp
del tmp

点击显示真假代码

list_1 = [[], [], []]
list_2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

for i in list_2:
    index = random.randint(0, 2)
    if (len(list_1[index]) < 4) :
        list_1[index].append(i)
    elif(len(list_1[index-1])<4):
        list_1[index-1].append(i)
    elif (len(list_1[index - 2])<4):
        list_1[index - 2].append(i)
print(list_1)

总结

  • 列表的定义【由一对中括号组成】
  • 列表的操作【增删改查排序】
  • 列表是可变类型

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值