python中元组和列表的比较

列表是容器类型,一般是用来存储数据的

列表,可以用来存放各式各样的数据,列表中存储数据是有序的

列表中的每条数据,都有一个索引,第一条数据的索引为0,第二条数据的索引为1,以此类推

定义列表如下:

list_1=[1,2,'hello',False,3.14,'world']

元组:元组(tuple)也是python中内置的一个容器类,元组中的数据一旦确定下来就不可更改,不能进行添加、删除、修改的操作,可以认为元组就是一个不可变的列表(list)

  声明元组:

# 元组中只有一个元组的时候,在Python2中必须在元素后边加个,逗号
tuple_1=(3.14,'hello','world',2,3,4,5,6)
print(tuple_1)
#声明元组时,可以省略小括号,这种方式也可以生成一个元组
tuple_2=1,2,3,4,5,6,7,8
print(type(tuple_2))

一、向列表中添加数据(三种方法)

法一:使用append(object)函数,向列表中追加数据,会把添加的数据放在列表中的最后一个位置

          object:对象 要添加到列表中的数据

list_1.append('2018-1-23')
print(list_1)

运行结果:
[1, 2, 'hello', False, 3.14, 'world', '2018-1-23']

法二:使用insert(index,object)函数,向列表中插入一条数据

          index 索引(如果超出最大索引,会将数据放在最后,不会发生越界)会在索引之前插入一条数据      object:插入的数据

          如果index索引为负值,位置会从后向前找,最后一条数据索引为-1

list_1.insert(-1,'oppo')
print(list_1)

运行结果:
[1, 2, 'hello', False, 3.14, 'world', 'oppo', '2018-1-23']

法三:使用extend(iterable)函数,可以将另外一个列表中的数据添加到该表中

           iterable:可迭代对象  列表、字符串、字典、元组

list_2=['a','s','d','f']
list_1.extend(list_2)
print(list_1)

运行结果:
[1, 2, 'hello', False, 3.14, 'world', 'oppo', '2018-1-23', 'a', 's', 'd', 'f']

二、修改列表中的数据(两种方法)

法一:直接根据索引进行修改

list_1[3]=True
print(list_1)
法二:1.首先用index()函数查找要修改数据的索引

          2.根据找到的索引值修改数据

          index(object:数据, start:开始搜索的位置,stop:结束搜索的位置) 

          若无start和stop默认从头查到尾,如果指定查找位置:包含start起始位置,不包含stop结束位置

          如果数据不在列表中(或者不在指定的范围内),会出现异常错误

index=list_1.index('oppo',0,8)
print(index)
运行结果:
6
#根据找到的索引修改数据
list_1[index]='vivo'
print(list_1)
运行结果:
[1, 2, 'hello', True, 3.14, 'world', 'vivo', '2018-1-23', 'a', 's', 'd', 'f']

三、删除列表中的数据(四种方法)

法一:根据索引删除

#delete:删除
del list_1[4]

法二:使用remove(object)函数,根据数据内容删除  要删除的内容必须在列表中,否则会报错

         可先判读数据是否在列表中,再进行删除操作

#object in list 如果object在列表中,返回True,不在返回False
#object not in list 如果object不在列表中,返回True,在返回False
if 'ssss' in list_1:
    list_1.remove('ssss')
else:
    print('无法进行删除操作')

list_1.remove('vivo')
print(list_1)

法三:使用pop(index)函数,移出(不是移除)

           index 可以指定取出数据的索引,如果不指定的话,默认取出最后一条数据,不能超出最大索引

s=list_1.pop(-1)
print(s)
print(list_1)

运行结果:
world
[1, 2, 'hello', False, 3.14]
法四:移除列表中所有的数据

# clear:清除
list_1.clear()

四、取出列表中(元组)的数据

1.列表

使用索引取出列表中的数据,数据还在列表中

s=list_1[2]
print(s)
print(list_1)
运行结果:
hello
[1, 2, 'hello', True, 'world', '2018-1-23', 'a', 's', 'd']
使用pop()函数,数据会从列表中移出

s=list_1.pop(2)
print(s)
print(list_1)

运行结果:
hello
[1, 2, True, 'world', '2018-1-23', 'a', 's', 'd']
2.元组

根据索引取出元组中的数据

num=tuple_1[0]
print(num)

#查找元素在元组中的索引

#index(x,start,end) 查找某个元素在元组中的位置  数据若不在元组中或者指定范围内会报错
# x 指要查找索引的元素 start 查找的的其实位置  end查找的结束位置
#查找位置 如果不指定 从开始位置到末尾位置  若指定位置从start开始到end之前,不包含end
index=tuple2.index(1)
print(index)

五、列表(元组)的切片

1.列表
#包含开始位置,不包含结束位置
#[开始位置:结束位置]  切片之后返回的是一个新的列表
rs=list_1[2:4]
print(rs)
#[:结束位置] 从第0个位置开始切片,一直到结束位置(不包含结束位置)
result=list_1[:5]
print(result)
#[开始位置:] 从开始位置进行切片,直到列表最后一个元素
result=list_1[3:]
print(result)
#开始位置一定要小于结束位置,否则会出现结果为空列表的情况
result=list_1[4:2]
print(result)
# result=list_1[-1:-5]  这样写会报错,因为-1>-5
#填写负值
result=list_1[-5:-1]
print(result)
2.元组

#元组也支持切片操作,切片之后返回一个新的元组
result=tuple_1[1:3]
print(result)

六、遍历列表(三种方法)

元组和列表的遍历方法一样

法一:根据索引

#遍历列表:将列表中的所有数据一个一个取出来
#获取列表中存放的数据个数
length=len(list_1)
print('列表中存放的数据个数为:%s'%length)
for x in range(0,len(list_1)):
    #把x的值作为索引 取出列表中的数据
    s=list_1[x]
    print(s,'',end="")
法二:泛型遍历

for x in list_1:
    print(x,'',end="")

法三:使用枚举

#创建一个枚举对象
rs=enumerate(tuple_1)
#以下两种for循环均可
for index,value in rs:
    #index就是小元组的索引,value就是小元组中的数据
    #print()括号里可只写一个值,也可写两个
   print(value)
    #print(index,value)
for item in rs:
    print(item)


七、列表(元组)的其他函数

list_3=[8,45,22,35,1,67,3,15,7,98.5,33.4,1,1,1]
1.sort() 排序函数  默认使用升序排序

   reverse参数为True,按照降序排列

list_3.sort(reverse=True)
print(list_3)

运行结果:
[98.5, 67, 45, 35, 33.4, 22, 15, 8, 7, 3, 1, 1, 1, 1]


#reverse() 反向排序
list_3.reverse()
print(list_3)

运行结果:
[1, 1, 1, 1, 3, 7, 8, 15, 22, 33.4, 35, 45, 67, 98.5]
2.count()  统计某条数据在列表(元组)中出现的次数

#1.统计列表
count=list_3.count(1)
print(count)
#2.统计元组
count(x) 统计某个元素在元组中出现的次数
#x 要查找出现次数的元素
count=tuple2.count(1)
print(count)

八、列表与元组的转换

1.列表元组嵌套

list_1=[['张三',22,110],['李四',23,120],(1,2,3),(3,2,1)]
2.元组列表嵌套  元组嵌套列表,元组不可以修改,但可以修改元组中的列表

tuple1=(1,2,['张三',33,110],(3,2,1))
tuple1[2][0]='李四'
tuple1[2].append('hello')
print(tuple1)
3.元组列表的互相转换

list2=[1,2,3,4]
#把列表转换为元组
tuple2=tuple(list2)
print(type(tuple2))
#把元组转换为列表
list2=list(tuple2)
print(type(list2))












  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值