一,元组

1.元组的创建(可以把元组看作一个容器,任何数据类型都可以放在里面)
通过赋值方法创建元组
In [5]: t = ("hello",2.3,2,True,{1:"hello",2:"world"},)

In [6]: type(t)
Out[6]: tuple

In [7]: t = (1)

In [8]: type(t)
Out[8]: int

In [9]: t = (1,) #定义单个元组,一定要在这个元组后面加","

In [10]: type(t)
Out[10]: tuple

  • 通过工厂方法创建元组
In [15]: t = tuple("hello")

In [16]: type(t)
Out[16]: tuple

2.元组的操作

索引
In [17]: t = ("hello",2.3,2,True,{1:"hello",2:"world"},)

In [18]: print t[0] #正向索引
hello

In [19]: print t[-1] #反向索引
{1: 'hello', 2: 'world'}

In [20]: print t[4][1] #取索引值为4的字典中key为1的value

hello
---------------------

切片
In [24]: t = ("hello",2.3,2,True,{1:"hello",2:"world"},)

In [25]: print t[2:4] #只取索引为2,3的元素
(2, True)

In [26]: print t[::-1] #逆转元组的元素
({1: 'hello', 2: 'world'}, True, 2, 2.3, 'hello')
---------------------

连接
In [33]: t = (1,1.2,True,"hello")

In [34]: t1 = ((True,"hello",1),1+2j)

In [35]: print t1+t
((True, 'hello', 1), (1+2j), 1, 1.2, True, 'hello')

  • 重复
In [39]: t = (1,1.2,True,"hello")  

In [40]: print t*2       #自己指定重复次数
(1, 1.2, True, 'hello', 1, 1.2, True, 'hello')
  • 成员操作符(这里常用于一些判断语句)
In [41]: t = (1,1.2,True,"hello")

In [42]: "hello" in t
Out[42]: True In [43]: "hello" not in t
Out[43]: False

3.元组的常用方法

count()
括号里是元组的value,返回这个value出现的次数,若是该value不在这个元组内,则返回0
In [60]: t = (1,2,3,4,4,"hello")

In [61]: t.count(4) #统计4出现的次数
Out[61]: 2

In [62]: t.count(6)
Out[62]: 0
---------------------

4.元组可用的内置方法

  • cmp() 
    两个元组间第一个元素ASCII码的比较,左边大于右边的元组,返回1,左边小于右边的元组,则返回-1,若是左右两边元组相等,则返回0
In [83]: cmp(("a",12),(1,2))
Out[83]: 1
  • max() 
    同上,但返回的是值大的元组
In [85]: max(("hello",2),(3,4))
Out[85]: ('hello', 2)
  • min() 
    同上,但返回的是值小的元组
In [86]: min(("hello",2),(3,4))
Out[86]: (3, 4)
  • 枚举的使用

    采用元组套元组的方式,存储成绩信息:

scores = (
("Math",90),
("English",91),
("Chinese",93.1)
)

利用枚举和for循环输出信息

print "科目编号\t科目名称\t\t成绩"
for index,value in enumerate(scores):
print "%3d\t\t%s\t\t%.2f" %(index,value[0],value[1])

结果

科目编   科目名称     成绩
0 Math 90.00
1 English 91.00
2 Chinese 93.10

zip()
令元组a的元素和元组b的元素一一对应,若是两个元组的元数个数不等,则以元素少的元组为标准,一一匹配完为止
In [99]: subjects = ("chinese","math","english")

In [100]: scores = (93.1,90)

In [101]: print zip(subjects,scores)
[('chinese', 93.1), ('math', 90)]
---------------------

二,列表(list)

列表是打了激素的数组,因为数组只能存储同一种数据类型的结构,而列表可以存储是可以存储多种数据类型的结构
1.定义列表
In [103]: li = [(1,2,3),"hello", [True,"world",666],1.2]

In [104]: print li
[(1, 2, 3), 'hello', [True, 'world', 666], 1.2]

In [105]: type(li)
Out[105]: list
---------------------

2.列表的操作(和元组比较)

  • 索引(类似于元组,不赘述)
In [111]: li = [(1,2,3),"hello", [True,"world",666],1.2]

In [112]: print li[2][0]
True


列表是可变数据类型,可以修改元素

In [106]: li = [(1,2,3),"hello", [True,"world",666],1.2]

In [107]: li[0] = 1 #令列表索引值为0的元素变为1

In [108]: li #列表被修改
Out[109]: [1, 'hello', [True, 'world', 666], 1.2]
---------------------


元组是不可变数据类型,不可以修改元素


In [110]: t =(0,1)

In [111]: t[0] = 1  #报错,如下图

  • 切片(类似于元组,不赘述)

  • 连接(类似于元组,不赘述)

  • 重复(类似于元组,不赘述)

  • 成员操作符(类似于元组,不赘述)

列表的增删改查


append()追加元素到列表的最后


# ip 白名单
allow_ip = ["172.25.254.1","172.25.254.3", "172.25.254.26" ]
allow_ip.append("172.25.254.250")
print allow_ip


执行效果:
['172.25.254.1', '172.25.254.3', '172.25.254.26', '172.25.254.250']
---------------------


insert()增加元素到列表的指定位置


allow_ip = ["172.25.254.1","172.25.254.3", "172.25.254.26" ]
allow_ip.insert(0, "192.168.1.253")


执行效果:
['192.168.1.253', '172.25.254.1', '172.25.254.3', '172.25.254.2
6', '172.25.254.250']
---------------------


extend()增加多个元素到列表最后


# ip 白名单
allow_ip = ["172.25.254.1","172.25.254.3", "172.25.254.26" ]
allow_ip.extend(["172.25.254.45", "172.25.56.21"])


执行效果:
['192.168.1.253', '172.25.254.1', '172.25.254.3', '172.25.254.2
6', '172.25.254.250', '172.25.254.45', '172.25.56.21']
---------------------


1.删除列表中遇到的第一个 value 值,如果该value值不存在,则报错
#语法格式:li.remove(value)

li = [1,2,45,6,8,0,1]
li.remove(1)
print li

执行效果:
[2, 45, 6, 8, 0, 1]

2.删除列表中第 i 个索引值;
#语法格式: del li[index]

li = [1,2,45,6,8,0,1]
del li[5]
print li

执行效果:
[1, 2, 45, 6, 8, 1]

test:删除除了第一个元素之外的其他索引值
li = [1,2,45,6,8,0,1]
del li[1::]
print li

执行效果:
[1]
3.根据索引删除一个元素,并返回该元素,如果括号内没有值,默认删除最后一个元素,若是超过范围的index,则报错
#语法格式:li.pop(index)

li = [1,2,45,6,8,0,1]
li.pop(1)
print li

运行效果:
[1, 45, 6, 8, 0, 1]

4.删除列表对象
li = [1,2,45,6,8,0,1]
del li
---------------------



1.统计某个元素在列表中出现的次数
li = [1,2,45,6,8,0,1]
print li.count(1)


运行效果:
2


2.找到某个值在列表中的索引值
li = [1,2,45,6,8,0,1]
print li.index(1,1) #value值为1,该值范围的起始索引为1


运行效果:
6
---------------------

# 通过列表的索引,对列表某个索引值重新赋值
li = [1,2,45,6,8,0,1]
li[1] = True
print li 运行效果:
[1, True, 45, 6, 8, 0, 1]


sort() — 排序
若都是数字,按照数字大小排序 ;若是字母的话,按照 ASCII 码来排序;
ps:查看对应的 ASCII 码 ? ord(‘a’)
li = [1,2,45,6,8,0,1]
li.sort()
print li

运行效果:
[0, 1, 1, 2, 6, 8, 45]
---------------------


  • reverse()—逆转 
    我们实现逆转除了前面讲的切片方式,也可以使用改方法

li = [1,2,45,6,8,0,1]
li.reverse()
print li 运行效果:
[1, 0, 8, 6, 45, 2, 1]
 
https://blog.csdn.net/zxy15771771622/article/details/79004224

python基础:元组(tuple)列表(list)介绍的更多相关文章

  1. python基础——元组(tuple)

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. tuple1 = () tuple2 = ...

  2. Python基础-元组、列表、字典

    元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组.例:(1,2,3)("a","b","c&q ...

  3. python基础-元组(tuple)及内置方法

    元组-tuple 用途:用于存储多个不同类型的值,但是不能存储可变类型数据 定义方法:用小括号存储数据,数据与数据之间通过逗号分隔,元组中的值不能改变. 注意: 1.定义元组时,如果里面只有一个值,在 ...

  4. 『Python基础-8』列表

    『Python基础-8』列表 1. 列表的基本概念 列表让你能够在一个地方存储成组的信息,其中可以只包含几个 元素,也可以包含数百万个元素. 列表由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...

  5. 4、Python 基础类型 -- Tuple 元祖类型

    Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: 实例(P ...

  6. .Net程序员之Python基础教程学习----列表和元组 [First Day]

    一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...

  7. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  8. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

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

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

  10. python 基础学习3 列表和元组 、字符串

    作为小白,坚持每日写学习记录,是督促坚持学习的动力, 今天主要是学习 列表和元组,列表是可以修改的,元组是不可变的.列表和元组的索引都是从0开始 列表可以修改, 可以对列表进行赋值,修改移除等各种方法 ...

随机推荐

  1. Docker 镜像命令

    Docker 镜像命令 1.Docker images--列出本地镜像 命令:docker images [OPTIONS] [REPOSITORY[:TAG]] 选项 -a :列出本地所有的镜像(含 ...

  2. QQ 邮箱设置自定义域名邮箱

    编者有话说 这篇文章来源于2019年12月左右,我在配置 Galaxy 生信分析平台的邮件服务过程中的一个尝试,我最早把它记录在了语雀上面,但由于某些原因一直迟迟没有更新到生信科技爱好者的公众号.直至 ...

  3. 自然语言处理 Paddle NLP - 信息抽取技术及应用

    1.什么是信息抽取 即自动从无结构或半结构的文本中抽取出结构化信息的任务(病历抽取) 2.实体抽取 3.关系抽取 4.事件抽取 信息抽取和知识图谱是一个上下游的关系.抽取的结果,可以组装成知识图谱(一 ...

  4. Unity 制作KinematicCharacterController

    本篇博客为游戏开发记录,博主只是想自己做个移动组件给自己做游戏用,此间产生的一些经验也做一个分享. 简介 为了在3D世界中自由的控制我们的角色,引擎一般会提供一些基础的移动组件,上层用户做提供一些每帧 ...

  5. JVM之指针压缩

    做java开发的同学一般都比较熟悉JVM,那么关于指针压缩这块内容是不是也了解呢,不熟悉的小伙伴往下看吧. 首先说明,本文涉及的JDK版本是1.8,JVM虚拟机是64位的HotSpot实现为准. ja ...

  6. 如何通过Java读取到Windows系统日志evtx文件

    近日公司有个需求,需要调研如何使用Java来读取Windows日志文件(类型:应用程序,安全,Setup,系统) 一番调研以后,在仅使用java的基础上系统日志文件似乎不太可能(就个人调研结果来看), ...

  7. 简单认识Promise

    什么是Promise Promise是异步编程的一个解决方案:从语法上讲它是一个对象,可以获取到异步操作的消息,从本意上讲,它是一个承诺,承诺过一段时间后它会给你一个结果.Promise有三种状态:p ...

  8. ZIM|一站式接入,打通 RTC 和 IM 组合拳

    从用户信息.用户心跳到用户间私人与聊天室通信,IM 一直是互联网世界中不可或缺的基础建设之一.早在连麦和直播诞生之前,IM 就已是在通讯领域内服役多年的老兵,而随着线上音视频的兴起,IM 不仅没有没落 ...

  9. 2023年陕西彬州第八届半程马拉松赛153pb完赛

    1.赛事背景 2023年6月3日,我参加了2023陕西彬州第八届半程马拉松赛,最终153完赛,PB了5分钟.起跑时间早上7点30分,毕竟6月天气也开始热了.天气预报显示当天还是小到中雨,上次铜川宜君半 ...

  10. LeetCode 周赛上分之旅 # 36 KMP 字符串匹配殊途同归

    ️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越 ...