4.Python的不堪一击到初学乍练(列表,元组)

Python(列表,元组)

一.列表

  1. 列表初识

    • 列表是python的基础数据类型之一,其他编程语言也有类似的数据类型.
      比如JS中的数组, java中的数组等等,它是以[ ]括起来, 每个元素用","隔开并且可以存放各种数据类型.
    • 列表相比于字符串,不仅可以存放不同的数据类型,并且可以存放大量的数据.
      当32位Python可以存放:536870912个元素, 当64位Python可以存放:1152921504606846975个元素,并且列表是按照你保存的顺序进行排序的,有索引并且可以切片,方便取值.
  2. 列表索引,切片和操作

    1.1 列表的索引

    ​ 列表与字符串一样也有索引:

    # 列表索引的应用
    lst = ["asd", "你好", "hell world", 123, "升仙"]
    print(lst[0]) # 获取第一个元素
    print(lst[1]) # 获取第二个元素
    print(lst[2]) # 获取第三个元素
    print(lst[3]) # 获取第四个元素
    print(lst[4]) # 获取第五个元素
    # 列表是可变的与字符串不同这点要注意,在列表的操作中会有说明.

    1.2 列表的切片

    ​ 列表与字符串一样可进行切片操作

    lst = ["asd","你好","hell world",123,"升仙"]
    print(lst[0:3]) # ["asd","你好","hell world"]
    print(lst[:3]) # ["asd","你好","hell world"]
    print(lst[1::2]) # ["你好",123] 列表同样有步长
    print(lst[2::-1]) # ["hell world","你好","asd"] 步长位置的正负控制着取值的方向
    print(lst[-1:-4:-2]) # ["升仙","hell world"]
    # 列表和字符串的操作基本类似,因此操作起来并不难举一反三即可.

    1.3 列表的操作(增,删,改,查,其他操作)

    注意 : list和str不一样, lst可以发生改变.,所以可以直接在原来list对象上进行操作.

    ​ 1.3.1 列表的增加

    # 在列表后新增
    lst = ["asd","你好","hell world",123,"升仙"]
    print(lst)
    lst.append("wusir")
    print(lst) # ["asd","你好","hell world",123,"升仙","wusir"]
    ---------------------------------
    # 根据索引位置插入
    lst = ["asd","你好","hell world",123,"升仙"]
    lst.insert(1,"成仙") # 在索引为1的位置插入刘德华,原来的元素向后移动一位.
    print(lst) # ["asd","成仙","你好","hell world",123,"升仙"]
    ---------------------------------
    # 迭代添加
    lst = ["asd","你好","hell world",123,"升仙"]
    lst2 = ["升仙成功","升仙失败"]
    lst.extend(lst2)
    print(lst) # ["asd","你好","hell world",123,"升仙","升仙成功","升仙失败"]
    print(lst2) # ["升仙成功","升仙失败"]
    # lst2列表添加到lst列表中,lst2本身不变.

    ​ 1.3.2 列表的删除

    ​ 列表的删除有四种方式(pop,remove,clear,del)

    # pop删除用法
    lst = ["asd","你好","hell world",123,"升仙"]
    print(lst)
    el = lst.pop() # 当pop()括号内为空时,默认删除最后一个索引所对应的的数据.
    print(el) # 打印结果:升仙,pop删除列表的某一项时,会有返回值,其返回值就是被pop删除的内容.
    print(lst) # ["asd","你好","hell world",123]lst = ["asd","你好","hell world",123,"升仙"]
    el2 = lst.pop(2) # 删除索引为2的位置的值
    print(el2) # hell world
    print(lst) # ["asd","你好",123,"升仙"]
    ---------------------------------
    # remove删除用法
    lst = ["asd","你好","hell world",123,"升仙"]
    lst.remove("升仙") # 可以删除指定元素,当删除不存在的元素会报错
    print(lst) # ["asd","你好","hell world",123]
    ---------------------------------
    # clear删除用法
    lst.clear() # 清空list
    print(lst) # []
    ---------------------------------
    # 切片删除
    del lst[1:3] # 强制删除
    print(lst) # ["asd",123,"升仙"]

    ​ 1.3.3 列表的修改

    # 列表的修改
    lst = ["asd","你好","hell world",123,"升仙"]
    lst[1] = "飞升" # 把1号元素修改成飞升
    print(lst) # ["asd","飞升","hell world",123,"升仙"]
    lst[:4:2] = ["返璞归真", "融会贯通"] # 切片修改也可以,同时注意当步长不是1时,元素的个数要一一对应额否则会报错
    print(lst) # ["返璞归真","飞升","融会贯通",123,"升仙"]
    lst[1:4] = ["霸气外露"] # 如果切片没有步长或者步长是1时,则不用管替换的个数.
    print(lst) # ["返璞归真","霸气外露","升仙"]

    ​ 1.3.4 列表的查询

    ​ 列表是一个可以迭代的对象

    # 用for查询打印列表每一个元素
    lst = ["asd","你好","hell world",123,"升仙"]
    for el in lst:print(el)
    ---------------------------------
    # 查询元素在列表中出现的次数
    lst = ["asd","你好","hell world",123,"升仙"]
    c = lst.count("升仙") # 查询升仙出现的次数
    print(c) # 1
    ---------------------------------
    # 查询列表的长度
    lst = ["asd","你好","hell world",123,"升仙"]
    l=len(lst) # 列表的长度,与字符串的使用方式相同
    print(l) # 5

    ​ 1.3.4 列表的其他操作

    # 升序
    lst = [1,2,15,23,4,33]
    lst.sort() # 排序,默认为升序.
    print(lst) # [1,2,4,15,23,33]
    ---------------------------------
    # 降序
    lst.sort(reverse=True) # 降序
    print(lst) # [33,23,15,4,2,1]
    ---------------------------------
    # 翻转(倒序)
    lst = ["asd","你好","hell world",123,"升仙"]
    lst.reverse() # 此方法只针对列表内的各个元素,倒序
    print(lst) # ["升仙",123,"hell world","你好","asd"]
  3. 列表嵌套

    一层一层看灵活运用即可,融会贯通.

    lst = ["武当","峨眉","少林",["崆峒",["极乐谷"],"华山"],"魔教"]
    # 找到峨眉
    print(lst[2])
    # 找到少林和魔教
    print(lst[2:])
    # 找到崆峒
    print(lst[3][0])
    # 将崆峒改成丐帮
    lst[3][0]="丐帮"
    print(lst) # ['武当','峨眉','少林',['丐帮',['极乐谷'],'华山'],'魔教']
    # 在lst列表后添加"丐帮"
    lst.append("丐帮")
    print(lst) # ['武当','峨眉','少林',['崆峒',['极乐谷'],'华山'],'魔教','丐帮']

二.元组

  1. 元组初识

    ​ 元组俗称不可变的列表,又称为只读列表,元组也是python的基本数据类型之一,用小括号括起来,里面可以放任何数据类型的数据,循环也可以,查询可以,切片也可以,就是不能改.

    ​ 注意: 这里元组的不可变的意思是当子元素是不可变对象时元素不可变,当子元素为可变对象时是可以变的, 这取决于子元素是否是为可变对象.

    ​ 元组中如果只有一个元素,需要添加一个逗号,否则就不是一个元组,当tu=()时,print(type(tu)),打印结果显示tu是元组.

  2. 元组嵌套

    ​ 元组也有,len(),count(),index()等方法,可以自己尝试直至融会贯通.

    # 元组取值和切片
    tup = ("asd","你好","hell world",123,"升仙")
    print(tup[0]) # asd
    print(tup[2]) # hell world
    print(tup[2:]) # ("hell world",123,"升仙") 切片后仍然是元组
    ---------------------------------
    # for循环
    tup = ("asd","你好","hell world",123,"升仙")
    for el in tup:print(el)
    ---------------------------------
    # 当元组内的子元素时可变类型时可以进行操作,将武当换成丐帮
    tup = ("asd","你好","hell world",123,["武当","峨眉","少林"])
    tup[-1][0]="丐帮"
    print(tup) # ("asd","你好","hell world",123,["丐帮","峨眉","少林"])
    # 这里元组的不可变的意思是子元素不可变,而字元素内部的子元素是可以变, 这取决于子元素是否是可变对象.

转载于:https://www.cnblogs.com/chenshuo531702820/p/10986271.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端工程师手册】说清楚JavaScript中的相等性判断

有哪些判断相等性的方法 JavaScript现在提供了三种方法来判断相等性: ,三个等号即严格相等,两个等号即宽松相等Object.is(),ES6中用来判断相等的方法判断相等性的细节 (严格相等) 被比较的两个数不会进行类…

python多任务编程_python线程的多任务编程

多任务多任务介绍对于人来说,一边听歌,一边跳舞就是多任务。对于电脑,简单的说,同一时间执行多个程序处理数据叫做多任务多任务理解单核CPU单核cpu在处理多任务的时候是根据时间片轮转的方式进行的,比如执行QQ1us&…

列举python的5个数据类型_python公开课|新公布的5个python核心数据类型,这些细节你难道还不不知道吗...

【摘要】在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注python就业方向问题&…

selenium3 + python - page_source页面源码

前言: 有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息。selenium的page_source方法可以获取到页面源码。 本次以博客园为例,先爬取页面源码,通过re正则表达式爬取出url&a…

简单分析Guava中RateLimiter中的令牌桶算法的实现

为什么80%的码农都做不了架构师?>>> 令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目&am…

gcc oracle mysql_Linux下C语言访问Oracle数据库Demo

前提条件1. Linux环境已经存在,安装好了Oracle本demo 运行环境本地环境 RedHat LINUX AS 4 ,ORACLE 10G本地数据库sid orcl,ip:127.0.0.1,用户名:kingbi,密码:kingbi,表dsd_test. 显示表dsd_test 的所有记录.步骤:(1) 创建表 …

炼数成金数据分析课程---16、机器学习中的分类算法(交叉内容,后面要重点看)...

炼数成金数据分析课程---16、机器学习中的分类算法(交叉内容,后面要重点看) 一、总结 一句话总结: 大纲实例快速学习法 主要讲解常用分类算法(如Knn、决策树、贝叶斯分类器等)的原理及python代码实现 1、什么是分类? 分…

NFS配置详解

1、NFS服务介绍1.1 什么是NFS?NFS是Network File System的缩写。中文意思是网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或者目录。NFS客户端(一般为应用服务器,例如web&…

idea用法

更新gradle的依赖后,刷新项目引入jar包的方法: view--Tool Buttons 在右侧 Gradle 点刷新 转载于:https://www.cnblogs.com/z360519549/p/10994897.html

linux备份mysql需要暂停服务吗_【MySQL运维】线上MySQL数据库停服迁移流程

一、数据备份与恢复阶段,选在凌晨1点进行操作,暂停服务进行备份(允许停服2个小时)1、首先停止Nginx服务,并且修改数据库用户密码,防止还有新的连接进来2、杀掉某个用户所有进程for i in mysql -udba -pPASSWORD -ssse "show …

免费下载!5本阿里技术好书,带你看更大的世界

共享、开源是互联网技术发展的重要精神。在过去,25000多万名阿里工程师,撰写了一系列精品技术丛书,从算法、研发到职业人生随笔,应有尽有。目前该系列丛书已全部开放下载,供技术人免费阅读。 今天小编整理了其中的五本…

python3安装mysqlclient_Python3 安装mysqlclient错误处理(MAC版)

在使用django的时候需要安装mysqlclient库,很多时候会出现以下报错:running installrunning bdist_eggrunning egg_infowriting mysqlclient.egg-info/PKG-INFOwriting dependency_links to mysqlclient.egg-info/dependency_links.txtwriting top-level names to mysqlclient.…

React绑定事件处理函数this的几种方法

在以类继承的方式定义的组件中,为了能方便地调用当前组件的其他成员方法或属性(如:this.state),通常需要将事件处理函数运行时的 this 指向当前组件实例。 绑定事件处理函数this的几种方法: 第一种方法&…

乌班图系统16.04安装

本例jiyu基于Ubuntu16.04 64位版本为例进行安装,安装的方式有多种,本文使用光盘进行安装安装前应准备好,将Ubuntu的镜像文件刻成光盘,然后将光盘放入光驱,并设置服务器从光盘启动,开机到如下界面:按Enter键到下一步,如…

python做游戏用什么软件_用Python自制谷歌小游戏

谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个“小恐龙游戏”。(如果想要直接进行游戏,可以在地址栏输入:chrome://dino)今天我们就来给大家演示下,用Python来自己做一个仿制的“小恐龙游戏”&#x…

使用maven构建项目候,jar包错误的解决办法

1、删除架包,重新下载,右键项目点击"run as"中的“maven clean”,然后再maven中找到Update Project 2、可以在代码中,把鼠标放到报错的架包上 点击划红线部分,进行安装 转载于:https://www.cnblogs.com/qingqian/p/1099…

MySQL——通过EXPLAIN分析SQL的执行计划

在MySQL中,我们可以通过EXPLAIN命令获取MySQL如何执行SELECT语句的信息,包括在SELECT语句执行过程中表如何连接和连接的顺序。下面分别对EXPLAIN命令结果的每一列进行说明:select_type:表示SELECT的类型,常见的取值有:…

python将argv作为参数_在jupyter / ipython notebook中将命令行参数传递给argv

经过大量的环顾后,我发现了非常繁琐的自定义库,但是用几行代码解决了它,我认为这些代码很漂亮.我使用nbconvert最终得到一个html报告作为输出,包含笔记本中的所有图形和降价,但是通过最小的python包装器接受命令行参数:python文件test_args.py(正常执行命令行参数)&…

模拟输入(ADC-A0)

ESP8266具有内置的10位ADC,只有一个ADC通道(A0引脚),即只有一个ADC输入引脚可读取来自外部器件的模拟电压 ESP8266上的ADC通道和芯片供电电压复用,也就是说我们可以将其设置为测量系统电压或者外部电压 测量外部电压: analogRead(…

SQL Server 连接超时案例一则

原文:SQL Server 连接超时案例一则上周六,一工厂系统管理员反馈一数据库连接不上,SSMS连接数据库报“连接超时时间已到。在尝试使用预登录握手确认时超过了此超时时间.......”, 如下截图所示: 另外远程连接也连接不上,系统管理员…