引入
在内存中存储的数据可以是不同的数据类型。比如名字可以使用字符串存储,年龄可以使用数字存储,python有6种基本数据类型,用于各种数据的存储,分别是:numbers(数字类型)、string(字符串)、List(列表)、Tuple(元组)、Dictionary(字典).
本文介绍列表类型和元组类型。
列表类型(List)
列表属于可变数据类型,定义空列表有两种方式:
# 使用内置方法list定义一个空列表
list1 = list()
# 使用[]定义
list2 = []
但凡能够被for循环的对象,都可以当做参数传给list()
方法转换成列表。
a = 'name'
l = list(a) # 底层相当于调用for循环,将每个数据存到列表中
print(l)
# 默认是把字典的key转成列表
l = list({'k1':'name','k2':'age'})
print(l)
下面就介绍一些操作列表的方法。
第一,按照索引取值/修改值,列表中的每个元素都有索引,和字符串一样,正向索引从0开始,反向索引从-1开始。
list1 = ['a',1,'b','2']
# 1按索引取值:既可以取值也可以改
print(list1[0])
print(list1[-1])
# 索引存在则修改对应值,索引不存在,则会报错
list1[0] = 'c'
print(list1)
第二,列表支持切片操作,操作方式与字符串一直,列表的切片属于浅拷贝。
list1 = ['a',1,'b','2']
print(list1[::-1]) # 反转列表
# 相当于拷贝操作,浅拷贝
第三,计算列表的长度---len()
list1 = ['a',1,'b','2']
print(len(list1))
第四,成员运算
list1 = ['a',1,'b','2']
print('a' in list1)
print('a' not in list1)
第五,for循环,循环遍历列表中的每个元素
list1 = ['a',1,'b','2']
for i in list1:
print(i)
第六,列表运算
列表之间可以进行运算,但是列表类型不能其他数据类型进行运算
>>> list1 = [1, 2, 3]
>>> list2 = ['python', 'java']
>>> list1 + list2
[1, 2, 3, 'python', 'java']
>>> list1 * 2
[1, 2, 3, 1, 2, 3]
第七,下面介绍列表的一些常用内置方法,分别对应列表的增删改查和其他一些常用操作,其他不常用的方法希望大家可以自己补充学习一下。
①增
append()
向列表中追加值
list1 = ['a',1,'b','2']
list1.append(3)
print(list1) # ['a', 1, 'b', '2', 3]
extend()
将可迭代对象的每一个元素追加到列表中
list1 = ['a',1,'b','2']
list2 = [1,2,3]
# for i in list2:
# list1.append(i)
# print(list1)
# 实现上述代码操作
list1.extend(list2)
print(list1)
insert()
指定位置插入数据
list1 = ['a',1,'b','2']
# insert(插入位置, 插入的值)
list1.insert(1,'egon')
print(list1)
②删
del
通用的的删除方法,可以删除切片,没有返回值,只是单纯的删除
list1 = ['a',1,'b','2']
del list1[0]
del list1
pop()
根据索引删除,会返回删除的元素,不指定删除元素,默认删除最后一个值
list1 = ['a',1,'b','2']
res = list1.pop(2) #
print(res)
print(list1)
remove()
,根据元素值删除元素,没有返回值
list1 = ['a',1,'b','2']
res= list1.remove('a')
print(list1)
print(res) # None
③改
根据索引找到值直接进行赋值修改
list1 = ['a',1,'b','2']
list[0] = 100
pirnt(list1) # [100,1,'b','2']
reverse()
反转列表
list1 = ['a',1,'b','2']
print(list1.reverse())
sort()
列表排序
list2 = [1,2,4,6,2,3]
print(list2.sort()) # 数字默认从小到大排
print(list2.sort(reverse=True)) # 从打到小排
# 了解:字符串可以比大小,按照ASCII码表的先后顺序区别字符的大小
# 比较字符串大小按照对应位置依次比大小
# 在ASCII中表中越靠后的字符大于前面的
# 了解:列表之间也可以比大小,按照对应位置进行比大小,如果对应位置数据类型不同,会报错
l = [1,'abc','z']
l1 = [10,]
print(l1 > l )
④其他常用内置方法
clear()
清空列表
list1 = ['a',1,'b','2']
list1.clear()
print(list1)
count()
:计算列表中某个元素的个数
list1 = ['a',1,'b','2']
# 某个元素的个数
print(list1.count(1))
index()
,按照值找对应的索引
list1 = ['a',1,'b','2']
print(list1.index(1))
⑤用列表实现队列和堆栈
队列:first in,first out(FIFO,先进先出)
l = []
# 入队操作
l.append('first')
l.append('second')
l.append('third')
# 出队操作
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))
堆栈:last in first out(LIFO,后进先出)
# 堆栈 (last in first out LIFO)
l.append('first')
l.append('second')
l.append('third')
# 出队操作
print(l.pop())
print(l.pop())
print(l.pop())
元组(Tuple)
元组也被称为只读列表,只能读取元组中的数据,但是不能修改元组的值,元组属于不可变数据类型。
定义元组有两种方式:
注意:当元组中只有一个元素的时候,也要写, 如果不写的话,就会变成字符串类型,因此也可以说,是元组的标志
# 使用内置方法tuple定义元组
my_tuple = tuple()
# 使用小括号,每个元素用,分割
t = ('a', )
s = ('a')
print(type(t), type(s)) # <class 'tuple'> <class 'str'>
操作元组的方法与列表一致,但是由于元组是不可变数据类型,因此不能对元组进行增加值、修改值、删除值的操作。
文末
如果你觉得我写的不错,就请给个赞赏吧,欢迎关注我的微信公众号:程序媛小庄,获取更多python知识哦~
更多精彩python教程请来B站关注我哦:python零基础入门---大白话版本来了_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili