一、列表

列表(list)是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

作用:多个装备,多个爱好,多门课程,多个女朋友等

定义:[ ]内可以有多个任意类型的值,逗号分隔

定义列表:name = [ ]   #name等于中括号就是定义列表

列表用来存储数据的

1、基本操作

列表的添加

append

追加,在列表的尾部加入指定的元素

insert

将指定的元素插入到对应的索引位上,注意负索引

列表的删除

pop

弹出,返回并删除指定索引位上的数据,默认删除索引为-1的数据(相当于剪切)

remove

从左往右删除一个指定的元素

del

删除整个列表或列表的数据,del是python内置功能,不是列表独有的

列表的查找

注:列表没有find方法

count

计数,返回要计数的元素在列表当中的个数

index

查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错

列表的排序

reverse

顺序倒序

sort

按照ascii码表顺序进行排序

2、定义列表

name = ['tom','jack','ren','yan']
print(type(name))
-------------------------------------------------
<class 'list'>

3、遍历列表

name = ['tom','jack','ren','yan']
for i in name:
print(i)
-------------------------------------
tom
jack
ren
yan
---------------------------------------------------
#通过下标访问
print(name[0])
print(name[3])
--------------------------------
tom
yan

4、切片:取多个元素

name = ['tom','jack','ren','yan','zhong','qq','weixin']
print(name[0:3])  #取下标0至3之间的元素,包含0,不包含3
print(name[:3])  
print(name[:-1])  #取下标0至最后一个的元素,包含0,不包含-1
print(name[4:])
print(name[::2])  #2表示每隔一个元素,就取一个
print(name[0:4:2])  #在0到4之间每隔一个元素取一个
------------------------------------------------------------
['tom', 'jack', 'ren']
['tom', 'jack', 'ren']
['tom', 'jack', 'ren', 'yan', 'zhong', 'qq']
['zhong', 'qq', 'weixin']
['tom', 'ren', 'zhong', 'weixin']
['tom', 'ren']

5、追加

name = ['tom','jack','ren','yan']
print(name)
name.append('我是新来的')  #在列表的尾部加入指定的元素
print(name)
-------------------------------------------------------------
['tom', 'jack', 'ren', 'yan']
['tom', 'jack', 'ren', 'yan', '我是新来的']

6、插入

name = ['tom','jack','ren','yan']
print(name)
name.insert(1,'插队的')  #插入到索引1位置
print(name)
---------------------------------------------
['tom', 'jack', 'ren', 'yan']
['tom', '插队的', 'jack', 'ren', 'yan']

7、修改

name = ['tom','jack','ren','yan']
print(name)
name[1] = '该换人了'
print(name)
-------------------------------------------------
['tom', 'jack', 'ren', 'yan']
['tom', '该换人了', 'ren', 'yan']

8、删除

name = ['tom','jack','ren','yan','zhong','hello','go','python']
del name[0]  #删除索引为0的指定元素
print(name)  #tom已删除
print(name.pop(0))  #输出要剪切的指定元素(知道索引,不知道内容)
print(name)  #Jack已删除
print(name.pop())  #pop默认删除最后一个元素
print(name)
print(name.remove('ren'))  #删除指定元素,且不输出(知道内容不知道索引)
print(name)
---------------------------------------------------------
['jack', 'ren', 'yan', 'zhong', 'hello', 'go', 'python']
jack
['ren', 'yan', 'zhong', 'hello', 'go', 'python']
python
['ren', 'yan', 'zhong', 'hello', 'go']
None
['yan', 'zhong', 'hello', 'go']

9、扩展

name = ['tom','jack','ren','yan','zhong']
languages = ['pyhon','go','C#','PHP']
name.extend(languages)
print(name)
--------------------------------------------
['tom', 'jack', 'ren', 'yan', 'zhong', 'pyhon', 'go', 'C#', 'PHP']

10、拷贝

name = ['tom','jack','ren','yan','zhong']
name_copy = name.copy()
print(name_copy)
--------------------------------------------------
['tom', 'jack', 'ren', 'yan', 'zhong']

11、统计

name = ['tom','ren','ren','yan','zhong']
print(name.count('ren'))
----------------------------------------------------
2

12、排序&翻转

name = ['tom','ren','ren','yan','zhong','alex',1,12,2,3,23]
name.sort() #不同字符类型不能放在一起排序
print(name)
-------------------------------------
Traceback (most recent call last):
File "C:/Users/renyz02/Desktop/py_test1/20190911/list.py", line 76, in <module>
name.sort()
TypeError: '<' not supported between instances of 'int' and 'str'
name = ['tom','ren','ren','yan','zhong','alex']
print(name)
name.sort()  #排序(字母按照ASCII码,数字从小到大)
print(name)
name.reverse()  #反转原来的顺序(数字、字母同理)
print(name)
-----------------------------------------------------
['tom', 'ren', 'ren', 'yan', 'zhong', 'alex']
['alex', 'ren', 'ren', 'tom', 'yan', 'zhong']
['zhong', 'yan', 'tom', 'ren', 'ren', 'alex']
----------------------------------------------------------------
name = ['tom','ren','ren','yan','zhong','alex']
print(name)
# name.sort()
# print(name)
name.reverse()
print(name)
--------------------------------------------------
['tom', 'ren', 'ren', 'yan', 'zhong', 'alex']
['alex', 'zhong', 'yan', 'ren', 'ren', 'tom']

13、获取下标

name = ['tom','ren','ren','yan','zhong','alex']
print(name.index('yan'))
---------------------------------------------------
3

二、元组

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

元组特点:是不可变

定义:与列表类型比,只不过[  ]换成() ,如:age=(11,22,33,44,55)

作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的)

元组的查找

index

从左往右返回第一个遇到的指定元素的索引,如果没有,报错

count

返回元组当中指定元素的个数

1、创建元组

num = (11,22,33,44)
print(type(num))
print(num)
----------------------------------------------
<class 'tuple'>
(11, 22, 33, 44)

定义一个空的tuple,可以写成():

num2 = ()
print(type(num2))
--------------------------------------------
<class 'tuple'>

但是,如果定义一个只有一个元素的tuple,需要加,:

num3 = (22)
print(type(num3))
num4 = (22,)
print(type(num4))
-----------------------------------------------------------
<class 'int'>
<class 'tuple'>

2、访问元组

num = (11,22,33,44)
print(num)
print(num[2])
-----------------------------------------
(11, 22, 33, 44)
33
num = (11,22,33,44)
print(num)
print(num.index(44))  #取索引
print(num.count(22))  #计数
-------------------------------------------------
(11, 22, 33, 44)
3
1

3、修改元组

说明:Python中不允许修改元组的数据,包括不能删除其中的元素。

元组是不可变的,也就是说,元组中的元素在被赋值后不能改变。但是,如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。

aa = (1,2,[11,22,33])
print(id(2))  #查看id
aa[2][0] = 44
print(aa)
print(id(2))  #id是一致的
--------------------------------------------------------
140730237805232
(1, 2, [44, 22, 33])
140730237805232

4、多维元祖访问

person = (("刘备","关羽","张飞"),("曹操","典韦"),("孙权","周瑜"))
print(person[2])
print(person[0][0])
-----------------------------------------------------
('孙权', '周瑜')
刘备

python基础之列表、元组的更多相关文章

  1. python基础(五)列表,元组,集合

    列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...

  2. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  3. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

  4. python基础数据类型--列表(list)

    python基础数据类型--列表(list) 列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增.删.改.查等操作 一列表的增.删.改.查 1增: 1.1增加到最后   append ...

  5. python基础4 列表和元组

    一. 列表列表:python基础数据类型之一:其他语言中也有列表的概念,js 数组,可索引,可切片,可加步长li = ['hello', 100, True, [1, 2, 3], {'name':' ...

  6. Python入门基础学习(列表/元组/字典/集合)

    Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...

  7. Day2 - Python基础2 列表、字典、集合

    Python之路,Day2 - Python基础2   本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...

  8. python基础之列表、字典、元祖等 (二)

    一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...

  9. python基础之列表讲解

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 如下图所示,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可.(接下来的演 ...

  10. Python - 基础数据类型 tuple 元组

    元组简单介绍 元组是一个和列表和相似的数据类型,也是一个有序序列 两者拥有着基本相同的特性,但是也有很多不同的地方 声明元组 var = (1, 2, 3) var = ("1", ...

随机推荐

  1. springboot项目配置logback日志系统

    记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖jar包: < ...

  2. 【macOS】显示/隐藏 允许“任何来源”的应用

    问题产生 在macOS中安装某些版本软件时会提示: "xxx"已损坏,打不开.您应该将它移动到废纸篓. 某些情况下实际上并不是软件已损坏,而是因为macOS对于开发者的验证导致软件 ...

  3. hdu4126(MST + 树形dp

    题意:       这个题目和hdu4756差不多,是给你一个图,然后是q次改变边的权值,权值只增不减,最后问你每次改变之后的最小树的平均值是多少. 思路:(prim+树形dp)       先跑一边 ...

  4. Windows中的工作组和域

    目录 工作组 工作组的访问 工作组的优缺点 域 ​域结构 域的原理 部署域架构 如何加入域 域中主机的登录 SRV出错及解决办法 SRV记录注册不成功的可能原因 禁用域中的账户 将计算机退出域 工作组 ...

  5. 网站指纹识别工具Whatweb的使用

    目录 whatweb 一些常见的Whatweb的扫描 常规扫描 批量扫描 详细回显扫描 扫描强度等级控制 快速本地扫描(扫描内网的主机) 将扫描结果导出至文件内 whatweb whatweb 是ka ...

  6. Web漏洞小结

    本文是对Web中最常见漏洞的一个小结: 注入类漏洞: SQL注入:SQL注入漏洞详解 XML注入:XXE(XML外部实体注入) 代码注入:代码注入漏洞 CRLF注入:CRLF注入 注入类漏洞是应用违背 ...

  7. 5.IA-32寄存器

    寄存器(Register)是CPU内部用来存放数据的一些小型存储区域,它与RAM(Random Access Memory,随机存储器.内存)略有不同.CPU访问(Access)RAM中的数据时要经过 ...

  8. 【Redis】redis异步消息队列+Spring自定义注解+AOP方式实现系统日志持久化

    说明: SSM项目中的每一个请求都需要进行日志记录操作.一般操作做的思路是:使用springAOP思想,对指定的方法进行拦截.拼装日志信息实体,然后持久化到数据库中.可是仔细想一下会发现:每次的客户端 ...

  9. shell 脚本中常用的内置变量

    在 Bash 解释器中,内置了许多变量,这些变量的功能是解释器自带的,我们在编写shell脚本时如果能灵活的使用它们,对脚本的编写效率以及差错大有帮助, 下面一一介绍这些变量 $FUNCNAME.$L ...

  10. MySQL binlog_ignore_db 参数最全解析

    前言: 经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select.show等).注意默认情况下会记录所有库的操作,那么如果我们有另类需求 ...