可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别。列表元素用([])包括,元素的个数和值可以改变,而元组用({})包括,不能更改。元组可以看成是只读的列表

一、初识列表

1、下面是一个正常的列表

>>> lis = ['xiaoyuan',25]

在序列中,可以包含其他的序列,也就是列表可以包含列表元组等

>>> lis = ['xiaoyuan',25]
>>> lis_jo = ['john',30]
>>> date = [lis,lis_jo]
>>> date
[['xiaoyuan', 25], ['john', 30]]

注意:Python中还有一种名为容器(container)的数据结构。容器基本上是包含其他对象的任意对象。序列型(例如列表,元组)和映射型(例如字典)。序列中的每个元素都有自己的编号,而映射的每一个元素都有一个名字(也称为键)。后续会介绍,至于不是序列也不是映射的容器类型,例如集合(set),后序介绍

2、序列的通用操作

所有序列类型都可以进行某种特定的操作,这些操作包括:索引(indexing),分片(sliceing),加(adding),乘(multiplying)以及检查每个元素是否属于序列的成员(判断元素是否存在于序列)。还有计算序列的长度,找出最大元素和最小元素的内建函数。以后还有一个重要的操作进行讲解,迭代(iteration)。对序列进行迭代的意思。

(1)索引序列中的所有元素都有编号这个编号从0开始递增:

>>> lis = ['xiaoyuan',25]
>>> lis_jo = ['john',30]
>>> date = [lis,lis_jo]
>>> date
[['xiaoyuan', 25], ['john', 30]]
>>> sta = 'hellow'
>>> sta[0]
'h'
>>> sta[-1]
'w'
>>> date[0]
['xiaoyuan', 25]

由此可见【-1】表示最后一个元素

(2)分片

①我们可以使用分片来对一个范围的元素进行操作

>>> tist = [1,2,3,4,5,6]
>>> new = "abcdefg"
>>> tist[1:3]
[2, 3]
>>> new[0:4]
'abcd'

>>> tist[2:]   #从第二个元素到最后
[3, 4, 5, 6]

②当我们想要从后面取元素怎么办?相信大家也知道了就是使用‘ – ’

>>> tist = [1,2,3,4,5,6]
>>>
>>> tist[-3:-1]
[4, 5]
>>> tist[-4:]   #这里也就是从倒数第四个元素到最后
[3, 4, 5, 6]

小练习1

我们知道域名是由www.xxxx.cn其中分为三个部分.cn为中国,xxxx表示域名,www,表示万维网那么我们想要取出域名怎么办呢?

 >>> url = 'www.aaa.cn'
>>> name = url[4:-3]
>>> name 'aaa' >>> print 'donaim name:<'+name+'>'+'type:'+url[-2:]
donaim name:<aaa>type:cn

小练习1

③步长,也就是按照步长的长度来取元素,当步长为1的时候就会输出所以的元素

>>> tist = [1,2,3,4,5,6,7,8,9,10]

>>> tist[0:10:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> tist[0:10:2]
[1, 3, 5, 7, 9]

如果我们想将元素从头到最后每个3个元素取出一个那么只需要这样即可

>>> tist[::3]
[1, 4, 7, 10]

(4)追加元素 list.append

>>> lis = [1,2,3,4,5,6]
>>> lis.append(7)
>>> lis
[1, 2, 3, 4, 5, 6, 7]

(5)列表删除元素del list[]

>>> lis
[1, 2, 3, 4, 5, 6, 7]
>>> del lis[0]
>>> lis
[2, 3, 4, 5, 6, 7]

(6)列表长度:len()

>>> len(lis)
6

(7)查找某个元素是否包含:“ 5“ in lis当存在返回True(真)否则为False(假)

>>> 5 in lis
True
>>> 1 in lis
False

(8)将列表变成字符串并定义连接方式 “_”.join(lis)

>>> name_lis = ["a","b","c"]
>>> '_'.join(name_lis)
'a_b_c’

(9)序列相加

>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]

>>> 'hell'+'world!'
'hellworld!'

(10)乘法 *

>>> 'hell'*5
'hellhellhellhellhell'
>>> [1]*5
[1, 1, 1, 1, 1]

(11)list函数,因为字符串不能像列表一样修改所以,将字符串转换成列表是就需要使用list(list函数适用于所有类型的序列)

>>> tup = 'asdfghj'

>>> list(tup)
['a', 's', 'd', 'f', 'g', 'h', 'j']

(12)元素赋值

>>> tup = list(tup)
>>> tup
['a', 's', 'd', 'f', 'g', 'h', 'j']
>>> tup[0] = 'A'
>>> tup
['A', 's', 'd', 'f', 'g', 'h', 'j']

小练习2

需求编写一个欢迎信息,要求格式化成方盒进行输出,并根据用户输入的内容而变换

 inpot = raw_input("your name:") #欢迎信息
text = len(inpot)
scr = 17+text #设置一个长度
left = (scr) // 2 #设置前方空格的空隙
#下方输出的内容可以根据输入字符串的长度进行变化
print #输出空
print ' ' * left + '+'+ '-'*(scr) + '+'
print ' ' * left + '|'+ ' '*scr + '|'
print ' ' * left + '|'+'Nice to meet you:' +inpot+ '|'
print ' ' * left + '|'+ ' '*scr + '|'
print ' ' * left + '+'+ '-'*(scr) + '+'

小练习2

二、初识元组

1、下面是一个正常的元组

>>> name = ('a','b','c')
>>> name
('a', 'b', 'c')

元组的基本操作跟列表类似,唯一的区别就是列表可以修改元组不可以修改

当我们查看a是否包含在name_tup元组中可以正常执行,但是想删除的时候就报错错误为元组对象不支持项删除

>>> name_tup = ('a','b','c')
>>> 'a' in name_tup
True
>>> del name_tup[0]

Traceback (most recent call last):
  File "<pyshell#45>", line 1, in <module>
    del name_tup[0]
TypeError: 'tuple' object doesn't support item deletion

最后推荐大家使用的编译器Pycharm

Python成长之路第一篇(2)__初识列表和元组的更多相关文章

  1. PYthon成长之路第一篇(1)__字符串初识

    今天一起走进python的代码世界,一起领悟python的魅力 在很多学习python的书中都会以 print  “Hello,world!” 这样的而一个程序为开始,那么其中的 hello,worl ...

  2. Python成长之路第一篇(2)-初识列表和元组

    可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别.列表元素用([])包括 ...

  3. python成长之路第一篇(5)文件的基本操作

    一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 ...

  4. Python成长之路第一篇(3)_初识字典

    经过上章的学习我们已经了解到了列表可以通过索引来获取对应的值,在本章我们将学到通过名字来索引数据,这种结构的类型称之为映射(maooing),在Python中字典是唯一内建的映射类型,其中的值我们称之 ...

  5. Python成长之路第一篇(4)_if,for,while条件语句

    有了以上的基本基础,已经上面写的几个小练习,大家肯定有很多的不满,比如查询为什么查询一次就退出了呢?下面我们来学习条件语句 一.万恶的加号 以前我们在print的时候如果要加上变量都有是使用+来作为连 ...

  6. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  7. python成长之路——第一天

    一.python版本间的差异: 1.1:2.x与3.x版本对比 version 2.x 3.x print print " "或者print()打印都可以正常输出 只能print( ...

  8. Python人工智能之路 - 第一篇 : 你得会点儿Python基础

    Python 号称是最接近人工智能的语言,因为它的动态便捷性和灵活的三方扩展,成就了它在人工智能领域的丰碑 走进Python,靠近人工智能 一.编程语言Python的基础 之 "浅入浅出&q ...

  9. 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)

    作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...

随机推荐

  1. UE把环境变量Path改了

    为了比较个文件,装了UE. 文件比较完了,环境变量也被改了. 改还不是写添加式的改,是写覆盖式的改. 搞得ant都起不动了,一看Path被改的那样(C:\hy\soft\ultraedit\Ultra ...

  2. vue2 axios 接口函数封装

    封装 axios 工具,编辑 src/api/index.js 文件 首先,我们要使用 axios 工具,就必须先安装 axios 工具.执行下面的命令进行安装 npm install axios - ...

  3. 重读金典------高质量C编程指南(林锐)-------第七章 内存管理

    2015/12/10补充: 当我们需要给一个数组返回所赋的值的时候,我们需要传入指针的指针.当我们只需要一个值的时候,传入指针即可,或者引用也可以. 结构大致如下: char* p = (char*) ...

  4. hdfs笔记

    Distributed File System 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文 ...

  5. jenkins构建一个python项目

    Jenkins发布后端python代码 “系统管理”“管理插件”“已安装” 检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它 ...

  6. 关于PM的认识

    1 我眼中的PM 1.1 人云“一个管理,半个专家”,我说“一个管理,两个专家” 如今,我发现我们不得不面对这样一个现实——角色兼职.我习惯上把项目分为三类:性命攸关的项目(涉及到人身安全的项目,如铁 ...

  7. select设置innerHMTL

    select控件在标准浏览器下可以直接innerHTML设置内容,IE则不行. HTML结构: <form name="form1"> <select name= ...

  8. 使用Nginx的proxy_cache缓存功能取代Squid

    Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...

  9. 底部TabsFooter

    Demo简单描述:点击底部菜单可切换页面,并且底部为共用. 这个是在设置好导航Navigator之后进行的步骤,只是我个人进行Tab切换的一种思路方法,或许不是最好的,仅供参考一下. 首先我们需要一个 ...

  10. Uboot的串口下载文件命令:loads / loadb / loady

    1. loads loads [ off ] 通过串口,下载S-Rec文件到off位置 loads命令可以通过串口线下载S-Record格式文件. 2. loadb loadb [ off ] [ b ...