Blogger Information
Blog 32
fans 0
comment 0
visits 19799
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
python 使用 list和tuple
XuanGG的博客
Original
902 people have browsed it

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 使用list 和 tuple
classmates = ['michasel','bob','tracy']
print classmates
# 变量classmates 就是一个list 用len() 函数可以获得元素的个数:
print len(classmates)
#用索引来访问list中每一个元素的位置,记得索引是从0开始的:
print  classmates[0],classmates[1], classmates[2]
#当索引超出了范围,python会报一个indexerror错误 所以,要确保索引不要越界记得最后一个元素的索引是
#len(classmates)-1.
#print classmates[3]
# tips 要获取最后一个元素可以用classmates[-1]做索引直接获取最后一个元素:
#以此类推,可以获取倒数第2个、倒数第3个:
print  classmates[-1],classmates[-2],classmates[-3]

# list 是一个可变的有序表,所以,可以往list中追加元素到末尾
#使用的基本是 apppend方法
classmates.append('admin')
print classmates
# 也可以把元素到指定位置,比如索引号1的位置:
classmates.insert(0,'xuan')
print classmates

# 要删除list末尾的元素,用pop()方法:
print classmates.pop()

print classmates

# 要删除指定的元素插入到指定位置,比如索引为1的位子
classmates.pop(1)
print classmates

# 要把某个元素替换成别的元素,可以直接给对应的索引位置赋值
classmates[0] = 'xuangg'
print classmates

# list 里面的元素数据类型也可以 不同
a = ['admin',True,1234]
print a

# list 元素也可以是另外一个list 比如 :
b = ['asp','python',['java','php'],'html']
print len(b)
print b[2][1]
#要注意s只有4个元素其中s[2]又是一个list如果拆开就容易理解
c =['java','php']
b =['asp','python','html']
# 要拿到php 可以写p[1] 或者b[2][1]  因此b可以看成是一个二维数组,类似的还有三维、四维、数组,不过很
#少用到 如果一个 list 中一个元素也没有就是一个空的list,长度为0


L =[]
print len (L)


# tuble
'''
另外一种有序列表叫元组:tuble  tuble 和 list 非常类似但是tuble 一旦初始化就不能修改,比如同样
是列出同学的名字
'''
classmates = ('michel','bed','tracy')
'''
现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:

'''
t = (1,2)
#如果要定义一个空的tuble,可以写成()
t = ()
print t

# 但是只有一个元素的tuble 如果你这么定义 :
t = (1)
print t

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


# 所以 只有一个元素 的时必须加一个,逗号一面误解为计算机的括号
a = (1,)
print a
#最后来着一可变的tuble

t =('a','b',['A','B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print t
'''
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
'''








Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post