数据类型--列表、元组
一、列表 list
数值
score=80
字符串
name1="tom"
name2="jerry"
name3="kate"
当需要存储多个元素的时候,提取不方便就需要使用列表来执行,减少时间。
python中列表定义:可变的有序表,可以存储多个元素的数据类型。
1.列表的创建
语法:列表名=[元素1,元素2....]
定义一个 names=["tom","jerry","kate",1,2,[4,5]]
执行print(names)
就会打印 ['tom', 'jerry', 'kate', 1, 2, [4, 5]]
看一下names是什么类型的
执行print(names,type(names))
就会打印['tom', 'jerry', 'kate', 1, 2, [4, 5]] <class 'list'>
后面<class 'list'>表示所属与列表
列表的特点:
(1) 列表中的元素可以是多种数据类型
在计算机里可以放多个元素的东西叫做容器,而列表就是这样。
(2) 列表是有序的、可重复
序列:字符串、字节、列表、元组-----有序数据类型
(3) 列表中的元素可以被修改-----列表是可变数据类型
列表的内存结构
基础的数据类型:数值、布尔、字符串、字节 (前面他们相同的东西会存在同一个内存地址上)
计算机内存中列表是有列表对象的。不同的列表对象是不同的。
names=["tom","jerry","kate",1,2,[4,5]]
names2=["tom","jerry","kate",1,2,[4,5]]
print(id(names),id(names2))
42845576 42846280 ID是不相同的
print(id(names[0]),id(names2[0]))
39682432 39682432 ID相同
print(id(names[3]),id(names2[3]))
1426088160 1426088160 ID相同
print(id(names[5]),id(names2[5]))
39677640 39700616 ID不同
print(id(names[5][0]),id(names2[5][0]))
1426088256 1426088256 ID相同
定义空列表
nulllist=[]
print(nulllist,type(nulllist))
打印出 [] <class 'list'> 说明也是一个列表
names=["tom","jerry","kate",1,2,[4,5]]
print(len(names),len(nulllist))
打印出 6 0 表示names有6 个元素,而nulllist有0个元素
列表类型的布尔转换
在数值类型,字符串类型转换布尔类型时得到0为Fasle假,其他为True真
所以说至少有一个元素 为True,没有元素为Fasle
nulllist=[]
print(bool(nulllist))
得到Fasle,所以是空列表
而有元素的names=["tom","jerry","kate",1,2,[4,5]]
print(bool(names))
得到True
在应用时判断用if names:
列表中的元素是可重复
li=[1,2,3,1]
print(li,len(li))
打印出[1, 2, 3, 1] 4 长度为4,显示2个1 表示列表中元素是可以重复的
2.列表的操作
(1)运算符 支持的有 + * in not in is is not == < > = 和字符串相同
+ 合并,将两个列表的元素合在一起,形成新的列表。新创建列表对象进行合并
a=[1,2]
b=[3,4]
print(a+b) [[1,2],[3,4]] 不是这样 是 [1,2,3,4]这样
* 重复 将列表中的元素进行重复,形成新的列表
print(a*3) [[1,2],[1,2],[1,2]] 不是这样 是 [1,2,1,2,1,2]这样
print(a*2+b*3) [1, 2, 1, 2, 3, 4, 3, 4, 3, 4] 这样
in not in: 判断元素是否在列表对象当中
a=[1,2,3,4,"a"]
print(1 in a) 会返回True
x="abc"
print(a in x) 得不出答案报错
print("a" in x) 注意:列表中的元素可以是多种类型,字符串中的元素就是单个字符串
is is not 判断对象是否是同一个
a=[1,2,3]
b=[1,2,3]
c=a
print(a is b) 显示False 内存对象不同
print(a is c) 显示True 因为c指向的内存对象相同
< > 将列表中的元素逐个比较 根据ascii码比较
print([1,2,3]<[4]) True
会用前面第一个元素和后面的相比较