首页 > 编程语言 > 详细

python基础之列表、元组

时间:2019-09-11 16:55:57      阅读:74      评论:0      收藏:0      [点我收藏+]

一、列表

列表(list)是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

作用:多个装备,多个爱好,多门课程,多个女朋友等

定义:[ ]内可以有多个任意类型的值,逗号分隔

定义列表:name = [ ]   #name等于中括号就是定义列表

列表用来存储数据的

1、基本操作

 

 

列表的添加

append

追加,在列表的尾部加入指定的元素

insert

将指定的元素插入到对应的索引位上,注意负索引

 

 

列表的删除

pop

弹出,返回并删除指定索引位上的数据,默认删除索引为-1的数据

remove

从左往右删除一个指定的元素

del

删除整个列表或列表的数据,del是python内置功能,不是列表独有的

列表的查找

注:列表没有find方法

count

计数,返回要计数的元素在列表当中的个数

index

查找,从左往右返回查找到的第一个指定元素的索引,如果没有找到,报错

列表的排序

reverse

顺序倒序

sort

按照ascii码表顺序进行排序

2、定义列表

name = [tom,jack,ren,yan]
print(type(name))
-------------------------------------------------
<class list>

3、遍历列表

name = [tom,jack,ren,yan]
for i in name:
    print(i)
-------------------------------------
tom
jack
ren
yan
---------------------------------------------------
#通过下标访问
print(name[0])
print(name[3])
--------------------------------
tom
yan

4、切片:取多个元素

name = [tom,jack,ren,yan,zhong,qq,weixin]
print(name[0:3])  #取下标0至3之间的元素,包含0,不包含3
print(name[:3])  
print(name[:-1])  #取下标0至最后一个的元素,包含0,不包含-1
print(name[4:])
print(name[::2])  #2表示每隔一个元素,就取一个
print(name[0:4:2])  #在0到4之间每隔一个元素取一个
------------------------------------------------------------
[tom, jack, ren]
[tom, jack, ren]
[tom, jack, ren, yan, zhong, qq]
[zhong, qq, weixin]
[tom, ren, zhong, weixin]
[tom, ren]

5、追加

name = [tom,jack,ren,yan]
print(name)
name.append(我是新来的)  #在列表的尾部加入指定的元素
print(name)
-------------------------------------------------------------
[tom, jack, ren, yan]
[tom, jack, ren, yan, 我是新来的]

6、插入

name = [tom,jack,ren,yan]
print(name)
name.insert(1,插队的)  #插入到索引1位置
print(name)
---------------------------------------------
[tom, jack, ren, yan]
[tom, 插队的, jack, ren, yan]

7、修改

name = [tom,jack,ren,yan]
print(name)
name[1] = 该换人了
print(name)
-------------------------------------------------
[tom, jack, ren, yan]
[tom, 该换人了, ren, yan]

8、删除

name = [tom,jack,ren,yan,zhong,hello,go,python]
del name[0]  #删除索引为0的指定元素
print(name)  #tom已删除
print(name.pop(0))  #输出要删除的指定元素(知道索引,不知道内容)
print(name)  #Jack已删除
print(name.pop())  #pop默认删除最后一个元素
print(name)
print(name.remove(ren))  #删除指定元素,且不输出(知道内容不知道索引)
print(name)
---------------------------------------------------------
[jack, ren, yan, zhong, hello, go, python]
jack
[ren, yan, zhong, hello, go, python]
python
[ren, yan, zhong, hello, go]
None
[yan, zhong, hello, go]

9、扩展

name = [tom,jack,ren,yan,zhong]
languages = [pyhon,go,C#,PHP]
name.extend(languages)
print(name)
--------------------------------------------
[tom, jack, ren, yan, zhong, pyhon, go, C#, PHP]

10、拷贝

name = [tom,jack,ren,yan,zhong]
name_copy = name.copy()
print(name_copy)
--------------------------------------------------
[tom, jack, ren, yan, zhong]

11、统计

name = [tom,ren,ren,yan,zhong]
print(name.count(ren))
----------------------------------------------------
2

12、排序&翻转

name = [tom,ren,ren,yan,zhong,alex,1,12,2,3,23]
name.sort()    #不同字符类型不能放在一起排序
print(name)
-------------------------------------
Traceback (most recent call last):
  File "C:/Users/renyz02/Desktop/py_test1/20190911/list.py", line 76, in <module>
    name.sort()
TypeError: < not supported between instances of int and str
name = [tom,ren,ren,yan,zhong,alex]
print(name)
name.sort()  #排序(字母按照ASCII码,数字从小到大)
print(name)
name.reverse()  #反转原来的顺序(数字、字母同理)
print(name)
-----------------------------------------------------
[tom, ren, ren, yan, zhong, alex]
[alex, ren, ren, tom, yan, zhong]
[zhong, yan, tom, ren, ren, alex]
----------------------------------------------------------------
name = [tom,ren,ren,yan,zhong,alex]
print(name)
# name.sort()
# print(name)
name.reverse()
print(name)
--------------------------------------------------
[tom, ren, ren, yan, zhong, alex]
[alex, zhong, yan, ren, ren, tom]

13、获取下标

name = [tom,ren,ren,yan,zhong,alex]
print(name.index(yan))
---------------------------------------------------
3

二、元组

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

元组特点:是不可变

定义:与列表类型比,只不过[  ]换成() ,如:age=(11,22,33,44,55)

作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的)

元组的查找

index

从左往右返回第一个遇到的指定元素的索引,如果没有,报错

count

返回元组当中指定元素的个数

1、创建元组

num = (11,22,33,44)
print(type(num))
print(num)
----------------------------------------------
<class tuple>
(11, 22, 33, 44)

定义一个空的tuple,可以写成():

num2 = ()
print(type(num2))
--------------------------------------------
<class tuple>

但是,如果定义一个只有一个元素的tuple,需要加,:

num3 = (22)
print(type(num3))
num4 = (22,)
print(type(num4))
-----------------------------------------------------------
<class int>
<class tuple>

2、访问元组

num = (11,22,33,44)
print(num)
print(num[2])
-----------------------------------------
(11, 22, 33, 44)
33
num = (11,22,33,44)
print(num)
print(num.index(44))  #取索引
print(num.count(22))  #计数
-------------------------------------------------
(11, 22, 33, 44)
3
1

3、修改元组

说明:Python中不允许修改元组的数据,包括不能删除其中的元素。

元组是不可变的,也就是说,元组中的元素在被赋值后不能改变。但是,如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。

aa = (1,2,[11,22,33])
print(id(2))  #查看id
aa[2][0] = 44
print(aa)
print(id(2))  #id是一致的
--------------------------------------------------------
140730237805232
(1, 2, [44, 22, 33])
140730237805232

4、多维元祖访问

person = (("刘备","关羽","张飞"),("曹操","典韦"),("孙权","周瑜"))
print(person[2])
print(person[0][0])
-----------------------------------------------------
(孙权, 周瑜)
刘备

 

python基础之列表、元组

原文:https://www.cnblogs.com/renyz/p/11506884.html

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