当前位置: 首页 > news >正文

python-day2-06-列表

  1. 前面我们了解了str、int、float等数据类型,比如人名用str,name=‘菜鸟’,那如果我们一个部门呢?还用字符串存数据吗?names =‘菜鸟,张三,李四’这样存数据,在调用的时候岂不是很麻烦,比如我们想取到星星,还要用到字符串方法,会比较麻烦,或者你想每个人取一个字符串的变量,这样也很麻烦,有多少个人,岂不是就要定一个多少个变量了?
  2. 为了解决这些麻烦,就有了列表,顾名思义,就是一个表,里面村范一系列数据,python里的列表定义比其他语言要简单,中括弧 [ ]括起来就是列表了,当然在python里列表也叫数组,大家不要因为名字不同而困惑,都一个概念,列表增删改查如下:
    • 列表命名
    • # 列表命名,列表名=[元素1,元素2,元素3],元素用英文逗号隔开,元素如果是字符串需要加引号
      names =['张三','李四','王五','小红','小明']
      # 列表里的元素是有排序的,所以每个元素都有一个数字编号,计算机是从0开始的,所以['张三','李四','王五','小红','小明']
      # 这些元素对应的索引一次为:01234,当然在python里除了索引这个叫法,还有下标、角标,都一个意思

       

    • 列表取值
    • 1 # 列表取值
      2 print(names[0])  #列表名[元素索引],这个格式就去到索引对应的元素了,这里取到'张三',列表只有这一种取值方法
      3 print(names[-1]) #负数表示从后往前取元素,这里取到了小明

       

    • 新增元素
    • 1 # 新增元素
      2 names.append('刚刚')  #列表名.append(元素),这个方法是在列表最后面加一个元素,这里在列表最后加上'刚刚'
      3 print(names)          # 结果为:['张三', '李四', '王五', '小红', '小明', '刚刚']
      4 names.insert(2,'李白')  #列表名.insert(索引值,元素),这个方法是在指定索引位置插入元素,之前该位置及后面的元素向后移一位
      5 print(names)            #结果为:['张三', '李四', '李白', '王五', '小红', '小明', '刚刚']

       

    • 修改元素
    • 1 # 修改元素
      2 names[0] = '杜甫'       #列表名[索引值]=新元素,这样就修改元素了
      3 print(names)            #结果为:['杜甫', '李四', '李白', '王五', '小红', '小明', '刚刚'

       

    • 删除元素
    •  1 # 删除元素
       2 names.pop()  #默认删除最后一个元素
       3 print(names) #结果为:['张三', '李四', '王五', '小红']
       4 names.pop(2) #删除指定下标的元素
       5 print(names) #结果为:['张三', '李四', '小红']
       6 names.remove('小红') #和pop不同,删除列表中指定的元素
       7 print(names)         #结果为:['张三', '李四']
       8 del names[1]  #删除指定下标的元素
       9 print(names)  #结果为:['张三']
      10 names.clear() #清空列表
      11 print(names)  #结果为:[]

       

    • 定义多维数组
    • 1 # 多维数组
      2 names1=['小刚','小红',['宙斯','美杜莎'],'杜甫','李白'] #数组里再来一个数据就是二维数组了
      3 names2=['小刚','小红',['宙斯',['美杜莎','女王']],'杜甫','李白']
      4 print(names2[2][1][1])   #取到的值为'女王'

       

    • 列表内置方法:
    •  1 # 内置方法
       2 names =['张三','李四','王五','小红','小明']
       3 names2 = ['宙斯','美杜莎']
       4 # names.extend(names2)   #合并两个list,将names2合并到names里面
       5 print(names)           #结果为:['张三', '李四', '王五', '小红', '小明', '宙斯', '美杜莎']
       6 names+names2       #合并两个list。但和上面不一样,这里只是把两个列表链接起来,原来的列表不会变化,类似字符串相加
       7 new_name =names+names2 #用+号的时候,需要用一个新列表来接收
       8 print(new_name)        #结果为:['张三', '李四', '王五', '小红', '小明', '宙斯', '美杜莎']
       9 print(names.count('张三'))
      10 print(names.sort())

       

    • 列表切片:
      • 顾名思义,就是把列表切成我们想要的片段。上面了解到,列表是有下标、索引的,name切片就是根据这个下标来进行切片的,比如我想取第一个元素到第三个元素,那么就这样写:names[0:3],这样就取到前面三个元素了
      • 但是你会发现,3的下标第四个元素,为啥切片要切到3呢,因为python切片里,顾头不顾尾,意思就是从下标取到结束下标的前一位元素。
      • 另外如果是从0下标开始取值,那么可以省略不写,直接写names[:3]即可
      • 如果是取值到最后,那么可以省略不写最后的索引,直接写names[3:]即可
      • 显然[:]这样就是取全部了
      • 步长:每走几步取一个元素,比如num【0:10:2】,这里就是美两个元素取一个,取值结果为[1,3,5,7,9]
      • 1 # 列表切片
        2 nums=[1,2,3,4,5,6,7,8,9]
        3 print(nums[1:3])  #取第二个元素到第三个元素,结果为[2, 3]
        4 print(nums[3:])   #从第四个元素开始,取所有的元素,一直取到最后,结果为[4, 5, 6, 7, 8, 9]
        5 print(nums[:6])   #取所有元素,从头开始取,前面的下标可以不写,结果为[1,2,3,4,5,6]
        6 print(nums[1:10:2])  #步长为2,每两个元素取一个,结果为[1,2,3,4,5,6,7,8,9]
        7 print(nums[::1])  #取素有的元素,1就是每个元素都取,结果为[1,2,3,4,5,6,7,8,9]
        8 print(nums[::-1])  #步长为负数的情况下是从后往前取,结果为[9, 8, 7, 6, 5, 4, 3, 2, 1]
        9 print(nums[7:1:-2])  #步长为负数时,这里的下标必须是前面的下标大于后面的下标,因为他是从后往前取的,结果为:[8, 6, 4]

         

转载于:https://www.cnblogs.com/vc123/p/9257760.html

相关文章:

  • 【短文】为什么我不在PHP的私有变量用下划线了?
  • angular-路由与导航部分梳理
  • C# Web Api一个小例子
  • 数塔-动态规划-ccf
  • 【Matplotlib】利用Python进行绘图
  • 单体架构风格
  • CSS outline和border区别
  • python学习之老男孩python全栈第九期_day009之文件操作总结
  • 复杂性研究相关论文
  • 我与Linux系统的藕断丝连
  • 老板让我十分钟上手nx-admin
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Flutter Android端启动白屏
  • 九、一级缓存、二级缓存
  • zabbix监控
  • 网络传输文件的问题
  • Computed property XXX was assigned to but it has no setter
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JS+CSS实现数字滚动
  • vue自定义指令实现v-tap插件
  • 和 || 运算
  • 后端_MYSQL
  • 简析gRPC client 连接管理
  • 使用putty远程连接linux
  • 通过git安装npm私有模块
  • 线上 python http server profile 实践
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • (C#)一个最简单的链表类
  • (离散数学)逻辑连接词
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)树状数组
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET中winform传递参数至Url并获得返回值或文件
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .skip() 和 .only() 的使用
  • /bin/rm: 参数列表过长"的解决办法
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [14]内置对象
  • [20170705]diff比较执行结果的内容.txt
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [Android]如何调试Native memory crash issue
  • [Angular 基础] - 数据绑定(databinding)
  • [bbk5179]第66集 第7章 - 数据库的维护 03
  • [CF226E]Noble Knight's Path
  • [codeforces]Checkpoints
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径