3.1数据结构—元组和列表_DMU_lzq1996的博客-程序员宅基地

技术标签: 利用python进行数据分析  

#3.1数据结构和序列
#3.1.1元组:固定长度,不可改变
#创建元组tuple
tup1 = (1,2,3)
tup2 = ((1,2),3,4)
tup1
tup2
((1, 2), 3, 4)
#序列或迭代器转换为元组
tup3 = tuple([1,2,3])
tup4 = tuple("string")
tup3
tup4
('s', 't', 'r', 'i', 'n', 'g')
#访问元素
tup4[0]
's'
#加号串联元组
tup5 = tup1 + tup2
tup5
(1, 2, 3, (1, 2), 3, 4)
#乘号复制元组
tup6 = tup1 * 4
tup6
(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
#元组元素赋给类似元组的变量
a,b,c = tup1
((a,b),c,d) = tup2
d
4
#元组拆分
values = (1,2,3,4,5)
a,b,*rest = values
rest
[3, 4, 5]
#tuple方法
a = (1,2,3,3,4,4,4,5)
a.count(4)  #计算频率
3
#3.1.2 列表 长度可变,内容可修改
#创建列表list
a_list = [2,3,7,None]
tup = ("foo","bar","baz")
b_list = list(tup)
b_list
['foo', 'bar', 'baz']
#修改列表
b_list[1] = "peekkaboo"
b_list
['foo', 'peekkaboo', 'baz']
#利用列表实体化迭代器
gen = range(10)
gen
range(0, 10)
list(gen)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#添加删除元素
b_list.append("dwarf")
b_list
['foo', 'peekkaboo', 'baz', 'dwarf']
b_list.insert(1,"red")
b_list
['foo', 'red', 'peekkaboo', 'baz', 'dwarf']
b_list.pop(2)
b_list
['foo', 'red', 'baz', 'dwarf']
b_list.append("fool")
b_list.remove("fool")
b_list
['foo', 'red', 'baz', 'dwarf']
#检查列表值
"dwarf" in b_list
True
#串联和组合列表
[1,None,'fool'] + [2,(2,3),5]
[1, None, 'fool', 2, (2, 3), 5]
x = [4,None,'fool']
x.extend([2,(2,3),5])
x
[4, None, 'fool', 2, (2, 3), 5]
#排序
a = [2,5,1,6,4,8,9,3,1]
a.sort()
a
[1, 1, 2, 3, 4, 5, 6, 8, 9]
b = ['saw','small','He','foxe','foxes']
b.sort(key = len)
b
['He', 'saw', 'foxe', 'small', 'foxes']
#切片
seq = [7,2,3,7,5,6,0,1]
seq[1:5]
[2, 3, 7, 5]
seq[:5]
[7, 2, 3, 7, 5]
seq[3:]
[7, 5, 6, 0, 1]
seq[-4:]
[5, 6, 0, 1]
seq[-6:-2]
[3, 7, 5, 6]
seq[::2]
[7, 3, 5, 0]
seq[0:4:2]
[7, 3]
seq[::-1]
[1, 0, 6, 5, 7, 3, 2, 7]
#序列函数
#enumerate函数返回(i,value)元组序列
some_list = ['foo','bar','baz']
mapping = {
    }
for i,v in enumerate(some_list):
    mapping[v] = i
mapping
{'foo': 0, 'bar': 1, 'baz': 2}
#sorted函数返回新的排好序的列表
sorted([7,4,5,3,5,1,8,6,3])

[1, 3, 3, 4, 5, 5, 6, 7, 8]
#zip函数将多个列表元组或其他序列组合成元组列表
seq1 = ['foo','bar','baz']
seq2 = ['one','two','three']
zipped = zip(seq1,seq2)
list(zipped)
[('foo', 'one'), ('bar', 'two'), ('baz', 'three')]
seq3 = [False,True]
list(zip(seq1,seq2,seq3))
[('foo', 'one', False), ('bar', 'two', True)]
for i,(a,b) in enumerate(zip(seq1,seq2)):
    print("{0}:,{1}:,{2}".format(i,a,b))
0:,foo:,one
1:,bar:,two
2:,baz:,three
pitchers = [('Nolan','Ryan'),('Roger','Clemens'),('Schilling','Curt')]
first_names,last_names = zip(*pitchers)
first_names
('Nolan', 'Roger', 'Schilling')
#reversed函数
list(reversed(range(10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/DMU_lzq1996/article/details/83279070

智能推荐

Java面试题(九)设计模式_豪大大ya的博客-程序员宅基地

88.说一下你熟悉的设计模式?89.简单工厂和抽象工厂有什么区别?

html页面加载蒙版_css3小圆点实现loading加载蒙版_张林威的博客-程序员宅基地

源码如下 没有什么好解释的 博主只测试了手机端body{width: 100%;smargin: 0 auto;height: 3000px;}.div_load{width:15px;height:15px;float: ;position:fixed;bottom: 52%;border-radius: 8px;animation:loading 5s infinite;-webkit-ani...

IOS网络入门-Socket套接字_Phyllis2016的博客-程序员宅基地

Tip1:网络基础1.计算机网络三部分组成:(1)资源子网:面向用户的部分,负责全网络面向应用的数据处理。(2)通信子网:负责数据通信(3)通信协议:通信双方必须遵守的规则和约定。2.分类:广域网、局域网3.网络体系结构OSI(Open System Interconnection)开放系统网络互联:(1)物理层:物理设备,原始比特流传输(2)数据链路层:网

计算机原理(四)_只要代码敲得好,BUG就追不到我的博客-程序员宅基地

2. 虚拟存储器 虚拟存储器我们一般也称为虚拟内存(和Windows中的虚拟内存不是一个概念,但是有关联),它的基本思想是:每个进程都有自己的地址空间;每个地址空间被分为多个块,每个块称为页,每个页有连续的地址空间;这些页被映射到物理内存,但不是所有也都在内存中程序才能运行;当使用的页不在物理内存中时,由操作系统负责载入相应的页; 在实模式下,CPU将偏移地址和段寄存器,基

L2TP和VAP_Samantha_LY的博客-程序员宅基地

L2TP: L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是VPDN(Virtual PrivateDial-up Network,虚拟私有拨号网)隧道协议的一种。VPDN隧道协议主要包括以下三种,目前使用最广泛的是L2TP。   a.PPTP(Point-to-Point Tunneling Protocol,点到点隧道协议)   b.L2F(Layer ...

Docker进阶学习(容器数据卷、安装Mysql、DockerFile )_木羽丶的博客-程序员宅基地_dockerfile安装mysql

Docker进阶学习容器数据卷docker的理念是将应用和环境打包成一个镜像。如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化需求:容器中的数据可以存在本地容器之间可以有一个数据共享的技术!Docker容器中产生的数据,同步到本地!这就是卷技术!目录的挂在,将我们容器内的目录,挂载到Linux上面!容器的持久化和同步操作!容器间也是可以共享的使用数据卷方式一:直接使用命令来挂载 -vdocker run -it -v 主机目录:容器内目录[[email protected]

随便推点

NSIS 解决 side-by-side configuration error_专注的流浪猫的博客-程序员宅基地

用NSIS制作的安装包,在没有安装VC运行环境的情况下,运行该安装包结束后,启动程序,可能会出现side-by-side configuration error。解决该问题的办法就是下载vc_red.cab 和vc_red.msi,双击运行vc_red.msi(实际上是安装vc_red.cab),安装完成后再运行程序则不会出现该错误。  我们也可以直接将这两个文件放进安装包中。这样运行安装

车联网总结_liangcb的博客-程序员宅基地

一句话:根据车联网产业技术创新战略联盟的定义,车联网是以车内网、车际网和车载移动互联网为基础,按照约定的通信协议和数据交互标准,在车-X(X:车、路、行人及互联网等)之间,进行无线通讯和信息交换的大系统网络,是能够实现智能化交通管理、智能动态信息服务和车辆智能化控制的一体化网络,是物联网技术在交通系统领域的典型应用。摘自百度百科...

seaweedfs调研_拔丝儿地瓜的博客-程序员宅基地

概要:master 存储映射关系,文件和fid的映射关系 weed masterNode 系统抽象的结点,抽象为datacenter、rack、datanodedatacenter 数据中心,包含多个rack,类似一个机房rack :属于一个datacenter,类似机房中的一个机架datanode : 存储节点,存储多个volume,类似机架中的一个机器 weed volumevol...

MDK中变量被优化的问题_const_zj的博客-程序员宅基地

在最近的项目中遇到一个奇葩的问题,在debug时发现if语句里面的条件全都为真,即是if(1) 却不执行if语句的程序代码段,结果被这个问题折磨了一下午,后来经过大佬们的指点得知原来是因为编译器对变量进行了优化 所以导致了该变量的值并不是最新的,二我们在debug的时候看到的却是变量的最新的值。所以导致了我们看到的和程序所执行的步骤不一样。解决办法:在变量的定义处加上__IO关键字,_...

PostgreSQL强制删除正在被使用的库_foucus、的博客-程序员宅基地_postgresql 删除数据库 正在使用

在PostgreSQL中,如果一个库正在被使用,我们是无法直接去删除的,会收到如下报错:[email protected]=>drop database db03;ERROR: database "db03" is being accessed by other usersDETAIL: There is 1 other session using the database.因此,我们需要禁止会话再连接到库中,同时中断掉当前所有连接的会话才可以。下面是具体的操作方法:1、设置数据库为禁止连接UPD

json存取值方式_过去式的美好的博客-程序员宅基地_json存值

json存值: 1、定义一个空的json对象,通过原型链方式赋值存值 var s1={}; s1.name=zhangsan; 这样会默认创建一个名为name的对象。每继续往下多点一层都要确保之前的每层对象链都有内容不能为undefined。 2、类似数组方式存值 var s2={}; s2[name]=zhangsan; 这样也会默认创建一个name的对象。

推荐文章

热门文章

相关标签