首页 > 编程语言 > 详细

python基础之列表和元组

时间:2016-04-21 23:19:59      阅读:264      评论:0      收藏:0      [点我收藏+]

python中内置的数据类型有列表(list)元组(tuple)字典(directory)。

1 list

list是一种可变的有序的集合。来看一个list实例:

 

#第一种方法:
>>> name=[liming,xiaohong,]
>>> name
[liming, xiaohong]
#第二种方法:
>>> age=list([18,17,])  
>>> age
[18, 17]

 

list有许多功能:

技术分享
>>> name
[liming, xiaohong]
>>> len(name)
2
>>> name.__len__()
2
查看list中元素的个数
技术分享
>>> name
[liming, xiaohong, xiaoqiang]
>>> name[2]
xiaoqiang
查看索引值所对应的元素
技术分享
>>> name
[liming, xiaohong, xiaoqiang]
>>> name.index(xiaohong)
1
#如果没有该元素,则会报错
>>> name.index(xiao)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: xiao is not in list
查看元素所对应的索引值
技术分享
>>> name
[liming, xiaohong, xiaoqiang]
>>> name.append(xiaohuang)
>>> name
[liming, xiaohong, xiaoqiang, xiaohuang]
追加元素到末尾
技术分享
>>> name
[liming, xiaohong, xiaoqiang]
>>> name.insert(1,yefan)
>>> name
[liming, yefan, xiaohong, xiaoqiang]
插入元素到指定索引位置
技术分享
>>> name
[liming, yefan, xiaohong]
>>> result=name.pop()
#将最后一个元素赋值给result
>>> name
[liming, yefan]
>>> result
xiaohong
删除最后一个元素
技术分享
>>> name
[liming, yefan, xiaoqiang]
>>> name.pop(1)
yefan
>>> name
[liming, xiaoqiang]
删除指定位置的元素
技术分享
>>> name
[liming, yefan, xiaoqiang]
>>> name[1]=xiaohong
>>> name
[liming, xiaohong, xiaoqiang]
将某个元素替换成其他元素
技术分享
>>> name
[liming, xiaohong, xiaoqiang]
>>> name.extend([yefan,heihuang,])
>>> name
[liming, xiaohong, xiaoqiang, yefan, heihuang]
追加列表到末尾
技术分享
>>> name
[liming, xiaohong, xiaoqiang, yefan, heihuang]
>>> name.reverse()
>>> name
[heihuang, yefan, xiaoqiang, xiaohong, liming]
反转元素顺序

另外,list元素也可以是另一个list(字典也可以):

>>> name=[liming, xiaohong, xiaoqiang]
>>> age
[18, 17]
>>> name.append(age)
>>> name
[liming, xiaohong, xiaoqiang, [18, 17]]

2  tuple

是一种另类的list,但是他的功能相较于list要少,因为tuple不支持修改,也就是不支持append,pop,extend,insert……

定义一个tuple:

#第一种方法
>>> age=(1,3)
>>> age
(1, 3)
#第二种方法
>>> age=tuple((1,4,))
>>> age
(1, 4)

如果要定义一个空的tuple,可以写成()

>>> age=()
>>> age
()

但是,要定义一个只有1个元素的tuple,如果你这么定义:

>>> age=(1)
>>> age
1
>>> type(age)
<class int>

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1

所以一般定义只有一个元素的tuple时,要加个逗号:

>>> age=(1,)
>>> age
(1,)

实际上tuple也是可变的,前文中所说的不可变指的是tuple元素不可变,但是tuple中的元素的元素是可以改变的。

>>> info=([liming,14,],[xiaohong,13,])
>>> info
([liming, 14], [xiaohong, 13])
>>> info[1][1]=12
>>> info
([liming, 14], [xiaohong, 12])

在这个例子中改变的不是tuple的元素,而是list的元素。

3  directory

字典是无序的由键值对组成的集合,元素可以是list tuple directory

定义一个字典:

>>> info={liming:16,xiaohong:12}
>>> info
{xiaohong: 12, liming: 16}
#格式是一个唯一的键对应一个值。

但是,当第二次定义一个键时,会出现这种情况:

>>> info
{xiaohong: 12, liming: 16}
>>> info={liming:16,xiaohong:12,liming:12}
>>> info
{xiaohong: 12, liming: 12}

也就是第二个相同的键会覆盖掉第一个相同的键

字典的功能:

 

python基础之列表和元组

原文:http://www.cnblogs.com/MnCu8261/p/5418632.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!