zoukankan      html  css  js  c++  java
  • 20201224-3 列表的使用1

    1 把班级中的名字存储下来,如何操作?
    name1 name2 name3   …… 这种命名方式绝对不行
    所以应该怎么办?
    
    2 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
    这里是用空格区分的,逗号也可以
    但是,应该如何取?
    
    如果通过字符串存储很多信息   1 不好存   2 不好改   所以出现了一种数据类型,叫 列表
    列表的命名规则,就是中括号 []
    names = []
    现在,一个列表就写完了
    
    print(names)
    
    names = ["ZhangYang","Guyun","XiangPeng","XuLiangchen"]
    现在想取出 ZhangYang
    print(names[0]) 0 代表 从左到右 开始的 第 1 个位置,计算机从 0 开始,二进制的第一个 就是 0
    通过位置 读取出来了
    
    print(names[0],names[2])
    取出了 ZhangYang 和 XiangPeng
    
    2-1
    现在想同时取出 Guyun 和 XiangPeng
    print(names[1:2])
    只取到了 Guyun 是为什么?
    print(names[1:3])   为什么向后错一个,就取到了 Guyun 和 XiangPeng
    起止位置包括,截止位置不包括;
    
    print(names[1:3])     # 这个动作,叫切片
    
    2-2
    如果不知道列表长度,想取最后一个,在不知道长度的情况下,取到最后的位置
    print(names[-1])   取得结果 XuLiangChen 这个是从右边开始数
    所以,取 XiangPeng  就是 print(names[-2])
     names = ["ZhangYang","Guyun","XiangPeng","XuLiangchen"]
      print(names[3]) # 切片
      print(names[-2]) # 切片
    ---> 
    XuLiangchen
    XiangPeng
    
    2-3 1 取最后两个值 XiangPeng 和 XuLiangchen print(names[-1:-3]) 结果是[]; 因为是 从左往右数的 如果是 print(names[-3:-1]);最右侧的就会取不到; --->['Guyun', 'XiangPeng'] 解决的办法就是 什么也不写 print(names[-2:]) 结果就是 XiangPeng 和 XuLiangChen 2 print(names[0:3]) 和 print(names[:3]) 结果是一样的,前面如果是 0,也是可以忽略掉的 以上是简单的 切片 3 有一个新的需求,现在 想 把 LeiHaidong 放入列表中 3-1 直接追加到后面 names.append("LeiHaidong") 3-2 如果放在一个随意的位置 names.insert(1,"ChenRonghua") 想放哪个位置,就写哪个位置 names.insert(3,"Xinzhiyu") 3-3 修改 Guyun 的值 names[2] = "XieDi"
    4 删除列表中的某一元素,删除有 3 种方法
    4-1 直接 names.remove("ChenRonghua")
    4-2 del names[1]
    4-3 names.pop()   删掉了最后一个,这是默认的; 如果输入下标,就可以指定     names.pop(1)
    
    5 取出一个元素,知道一个名字叫 XieDi 现在想取出来,如何通过名字取出来,并找到对应的位置
    print(names.index("XieDi"))
    找到位置后,现在想取出来
    print(names[names.index("XieDi")])
    
    6 如果有同名的人,比如有 两个 ChenRonghua
    names = ["ZhangYang","Guyun","XiangPeng","ChenRonghua","XuLiangChen"]
    names.insert(1,"ChenRonghua")
    ---> ['ZhangYang', 'ChenRonghua', 'Guyun', 'XiangPeng', 'ChenRonghua', 'XuLiangChen']
    现在不知道有多少个 ChenRonghua,需要统计,那么如何统计 有多少个呢?
    print(names.count("ChenRonghua"))
    
    7 names.clear() 这个列表就没了 是清空
    
    8 names.reverse()   反转
    
    9 names.sort()  排序
    优先级 符号 > 数字 > 大写 > 小写
    依据 Ascii 的顺序
    
    10 extend 方法
    比如还有一个列表,是另外的一个班级,名字叫 names2
    names2 = [1,2,3,4]
    names.extend(names2) 相当于把另一个班级并过来
    print(names,names2)
    -→ ['4ZhangYang', '#!Guyun', 'xXiangPeng', 'ChenRonghua', 'XuLiangChen', 1, 2, 3, 4] [1, 2, 3, 4]
    10-1 现在想删掉 names2
    del names2  即可
  • 相关阅读:
    HashMap源码学习
    java线程池
    MySQL的MVCC
    volatile关键字学习
    ArrayList, Vector和CopyOnWriteArrayList对比学习
    曹工说Redis源码(3)-- redis server 启动过程完整解析(中)
    曹工说Redis源码(2)-- redis server 启动过程解析及简单c语言基础知识补充
    曹工杂谈:我们的应用,启动就要去其他服务拉数据,那其他服务挂了,我们就起不来了?
    程序员正确的提问方式(个人建议)
    曹工说Redis源码(1)-- redis debug环境搭建,使用clion,达到和调试java一样的效果
  • 原文地址:https://www.cnblogs.com/azxsdcv/p/14183874.html
Copyright © 2011-2022 走看看