草根学Python(三)List 和 Tuple

前言

继续更新,能够经过 www.readwithu.com/ 来看以前的文章。python

目录

草根学Python(三) List 和 Tuple
草根学Python(三) List 和 Tuple

1、List(列表)

Python 内置的一种数据类型是列表:list。 list 是一种有序的集合,能够随时添加和删除其中的元素。安全

一、建立 List(列表)

建立一个列表,只要把逗号分隔的不一样的数据项使用方括号括起来便可,且列表的数据项不须要具备相同的类型app

list1=['两点水','twowter','liangdianshui',123]复制代码

二、访问 List(列表)中的值

使用下标索引来访问列表中的值,一样你也可使用方括号的形式截取字符函数

list1=['两点水','twowter','liangdianshui',123]
# 经过索引来访问列表
print(list1[2])
# 经过方括号的形式来截取列表中的数据
print(list1[0:2])复制代码

输出的结果:ui

访问 List(列表)中的值
访问 List(列表)中的值

三、更新 List(列表)

能够经过索引对列表的数据项进行修改或更新,也可使用 append() 方法来添加列表项。spa

list1=['两点水','twowter','liangdianshui',123]
print(list1)
# 经过索引对列表的数据项进行修改或更新
list1[2]=456
print(list1)
# 使用 append() 方法来添加列表项
list1.append('hello');
print(list1)复制代码

输出的结果:3d

更新 List(列表)
更新 List(列表)

四、删除 List(列表)

使用 del 语句来删除列表的的元素code

list1=['两点水','twowter','liangdianshui',123]
print(list1)
# 使用 del 语句来删除列表的的元素
del list1[3]
print(list1)复制代码

输出的结果:cdn

删除 List(列表)
删除 List(列表)

五、List(列表)运算符

列表对 + 和 的操做符与字符串类似。+ 号用于组合列表, 号用于重复列表。对象

Python 表达式 结果 描述
len([1, 2, 3]) 3 计算元素个数
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 复制
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print x, 1 2 3 迭代

六、List (列表)函数&方法

函数&方法 描述
cmp(list1, list2) 比较两个列表的元素
len(list) 列表元素个数
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另外一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) 将对象插入列表
list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),而且返回该元素的值
list.reverse() 反向列表中元素
list.sort([func]) 对原列表进行排序

七、实例

最后经过一个例子来熟悉了解 List 的操做

例子:

#-*-coding:utf-8-*-
#-----------------------list的使用----------------------------------

# 1.一个产品,须要列出产品的用户,这时候就可使用一个 list 来表示
user=['liangdianshui','twowater','两点水']
print('1.产品用户')
print(user)

# 2.若是须要统计有多少个用户,这时候 len() 函数能够获的 list 里元素的个数
len(user)
print('\n2.统计有多少个用户')
print(len(user))

# 3.此时,若是须要知道具体的用户呢?能够用过索引来访问 list 中每个位置的元素,索引是0从开始的
print('\n3.查看具体的用户')
print(user[0]+','+user[1]+','+user[2])

# 4.忽然来了一个新的用户,这时咱们须要在原有的 list 末尾加一个用户
user.append('茵茵')
print('\n4.在末尾添加新用户')
print(user)

# 5.又新增了一个用户,但是这个用户是 VIP 级别的学生,须要放在第一位,能够经过 insert 方法插入到指定的位置
# 注意:插入数据的时候注意是否越界,索引不能超过 len(user)-1
user.insert(0,'VIP用户')
print('\n5.指定位置添加用户')
print(user)

# 6.忽然发现以前弄错了,“茵茵”就是'VIP用户',所以,须要删除“茵茵”;pop() 删除 list 末尾的元素
user.pop()
print('\n6.删除末尾用户')
print(user)

# 7.过了一段时间,用户“liangdianshui”不玩这个产品,删除了帐号
# 所以须要要删除指定位置的元素,用pop(i)方法,其中i是索引位置
user.pop(1)
print('\n7.删除指定位置的list元素')
print(user)

# 8.用户“两点水”想修改本身的昵称了
user[2]='三点水'
print('\n8.把某个元素替换成别的元素')
print(user)

# 9.单单保存用户昵称好像不够好,最好把帐号也放进去
# 这里帐号是整数类型,跟昵称的字符串类型不一样,不过 list 里面的元素的数据类型是能够不一样的
# 并且 list 元素也能够是另外一个 list
newUser=[['VIP用户',11111],['twowater',22222],['三点水',33333]]
print('\n9.不一样元素类型的list数据')
print(newUser)复制代码

list的使用
list的使用

2、tuple(元组)

另外一种有序列表叫元组:tuple 。tuple 和 list 很是相似,可是 tuple 一旦初始化就不能修改。那么不能修改是指什么意思呢?

tuple 不可变是指当你建立了 tuple 时候,它就不能改变了,也就是说它也没有 append(),insert() 这样的方法,但它也有获取某个索引值的方法,可是不能赋值。那么为何要有 tuple 呢?那是由于 tuple 是不可变的,因此代码更安全。因此建议能用 tuple 代替 list 就尽可能用 tuple 。

一、建立 tuple(元祖)

元组建立很简单,只须要在括号中添加元素,并使用逗号隔开便可。

tuple1=('两点水','twowter','liangdianshui',123,456)
tuple2='两点水','twowter','liangdianshui',123,456复制代码

建立空元组

tuple3=()复制代码

元组中只包含一个元素时,须要在元素后面添加逗号

tuple4=(123,)复制代码

若是不加逗号,建立出来的就不是 tuple (元组),而是指 123 这个数了,这是由于括号 ()既能够表示 tuple,又能够表示数学公式中的小括号,这就产生了歧义,所以,Python 规定,这种状况下,按小括号进行计算,计算结果天然是 123 。具体看下图 tuple4 和 tuple5 的输出值

建立tuple
建立tuple

二、tuple(元组)的索引

元组下标索引从0开始,能够进行截取,组合等。

三、访问 tuple (元组)

tuple(元组)可使用下标索引来访问元组中的值

#-*-coding:utf-8-*-

tuple1=('两点水','twowter','liangdianshui',123,456)
tuple2='两点水','twowter','liangdianshui',123,456

print(tuple1[1])
print(tuple2[0])复制代码

输出的结果:

访问 tuple
访问 tuple

四、修改 tuple (元组)

上面不是花了一大段来讲 tuple 是不可变的吗?这里怎么又来修改 tuple (元组) 了。那是由于元组中的元素值是不容许修改的,但咱们能够对元组进行链接组合,还有经过修改其余列表的值从而影响 tuple 的值。

具体看下面的这个例子:

#-*-coding:utf-8-*-
list1=[123,456]
tuple1=('两点水','twowater','liangdianshui',list1)
print(tuple1)
list1[0]=789
list1[1]=100
print(tuple1)复制代码

输出的结果:

('两点水', 'twowater', 'liangdianshui', [123, 456])
('两点水', 'twowater', 'liangdianshui', [789, 100])复制代码

能够看到,两次输出的 tuple 值是变了的。咱们看看 tuple1 的存储是怎样的。

修改tuple流程图
修改tuple流程图

能够看到,tuple1 有四个元素,最后一个元素是一个 List ,List 列表里有两个元素,当咱们把 List 列表中的两个元素 124456 修改成 789100 的时候,从输出来的 tuple1 的值来看,好像确实是改变了,但其实变的不是 tuple 的元素,而是 list 的元素。tuple 一开始指向的 list 并无改为别的 list,因此,tuple 所谓的“不变”是说,tuple 的每一个元素,指向永远不变。注意是 tupe1 中的第四个元素仍是指向原来的 list ,是没有变的。

五、删除 tuple (元组)

tuple 元组中的元素值是不容许删除的,但咱们可使用 del 语句来删除整个元组

#-*-coding:utf-8-*-

tuple1=('两点水','twowter','liangdianshui',[123,456])
print(tuple1)
del tuple1复制代码

六、tuple (元组)运算符

与字符串同样,元组之间可使用 + 号和 * 号进行运算。这就意味着他们能够组合和复制,运算后会生成一个新的元组。

Python 表达式 结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 链接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

七、元组内置函数

方法 描述
cmp(tuple1, tuple2) 比较两个元组元素
len(tuple) 计算元组元素个数
max(tuple) 返回元组中元素最大值
min(tuple) 返回元组中元素最小值
tuple(seq) 将列表转换为元组
相关文章
相关标签/搜索