列表和数组的区别:
数组只能存放同一种数据类型
而列表能存放不同数据类型
元组和列表的区别:
元组不能增删改、其他和列表一样
什么是序列:
成员是有序排列的,且可以通过下标偏移量访问到它的一个(即索引)或者访问几个成员(即切片),这类类型统称为序列。
序列数据类型包括:字符串、列表和元组、
特点:支持以下特性:
索引和切片操作符
成员关系操作符(in 和 not in)
连接操作符(+)以及重复操作符(*)
数字10是序列吗?
不是,数字10,既不能索引也不能切片,所以不是序列
#列表的创建
list=[]
print(list,type(list))
li=[1]
print(li,type(li))

print([1,2] + [2,3]) #[1,2,2,3]
print([1,2] * 3) #[1,2,1,2,1,2]

print(1 in [1, 2, 3]) # true
# bool类型中:True也表示为1,False也表示为0
print(1 in ["a", True, [1, 2, "z"]]) # True
print(1 in ["a", False, [1, 2, "z"]]) # False
print(0 in ["a", False, [1, 2, "z"]]) # True

list = [1,2,3,[1,'b',3]]
print(list[0]) #1
print(list[2]) #3
print(list[-1]) #[1,'b',3]
print (list[-1][-2]) #b
print(list[3][1]) #b

list=['172','25','254','100']
print(list[:2]) #['172','25']
print(list[1:]) #['25','254','100']
print(list[::-1]) #['100', '254', '25', '172']#需求:已知['172','25','254','100'],输出100-254-25
print('-'.join(list[3:0:-1])) #方法1
print("-".join(list[1:][::-1])) #方法2
print("-".join(list[::-1][:3])) #方法3

names = ["mary","joe","jack"]
for item in names:print(f"姓名是{item}")


#在列表结尾追加
list=[1,2,3]
list.append(4)
print(list) #[1,2,3,4]
# 在列表开头添加
list=[1,2,3]
list.insert(0,'cat')
print(list) #['cat',1,2,3]
# 在某一个索引之前添加
list=[1,2,3]
list.insert(2,'cat') #在索引2前面添加
print(list)
# 依次追加多个元素
list=[1,2,3]
#list.append([4,5,6]) #[1, 2, 3, [4, 5, 6]],, append只能将456作为一个列表添加进去
list.extend([4,5,6])
print(list)

#通过索引直接修改
list=[1,2,3]
list[0]='cat'
print(list)
list[-1]='dog'
print(list)
#通过切片修改
list=['a','b','c']
list[:3]=['cat','dog','pig']
print(list)
list[1:3]=['rabbit','panda']
print(list)

#通过索引和切片查看元素
list=['a','b','c','a','a','c']
print(list[2]) # c
print(list[1:6]) # bcaac
print(list[:2]) #ab
print(list[4:])#ac
#查看元素出现次数和索引值
print(list.count('a')) #3,查看列表中元素a出现的个数
print(list.index('c')) #2 查看列表中元素c的索引,找到第一个之后就返回

#根据索引删除元素
list=['a','b','c','a','a','c']
list.pop(-1) #删除最后一个元素 ['a','b','c','a','a']
list.pop(0) #删除索引为0的元素 ['b','c','a','a']
print(list)
list=[1,2,3]
delete_num=list.pop(0) #将删除的元素存储在变量delete_num中
print('删除的元素是:', delete_num)#根据value值删除
li=['a','b','c','b','c']
li.remove('c') #将出现的第一个元素c删除
print(li)#全部清空
li=['a','b','c']
li.clear()
print(li)

list=[14,24,5,99]#reverse翻转函数
list.reverse() #和list[::-1]类似
print(list) #[99, 5, 24, 14]#sort排序函数
list.sort()
print(list) #[5, 14, 24, 99] 由小到大排序
list.sort(reverse=True)
print(list) #由大到小排序#copy复制函数
li=list.copy()
print(id(li),id(list)) #查看这两个链表的地址
print(li,list) #查看这两个链表的内容

!!!当元组中只有一个元素时,元素后面一定要加逗号
t1 = ()
print(t1, type(t1)) # () tuple
t2 = (2)
print(t2, type(t2)) # 2 int型
t3 = (2,)
print(t3, type(t3)) # 2 tuplet4 = (1, 2.2, True, [1, 2, 3])
print(t4, type(t4))

#连接和重复
t=(1,2,'c')
print(t+('a',))
print(t*3)#成员操作符
t=(1,2,'hello')
print('hello' in t)
print('hi' not in t)#索引和切片
t=(1,2,'a','c')
print(t[0]) #1
print(t[-1]) # c
print(t[:2]) #(1,2)
print(t[::-1]) #('c', 'a', 2, 1)

#常用方法:元组是不可变数据类型(不能增删改)
#查看
#通过索引和切片查看
#查看索引值和元素出现次数
t=(1,2,3,'a','b',2)
print(t.count(2)) #2
print(t.index(2)) #1

对元组中的每个元素都设置了名字,在操作以及读代码的时候更加方便
tu=("li",18, "西安")
print(tu[0],tu[1],tu[2])
#从collections模块中导入namedtuple工具
from collections import namedtuple
#创建命名元组对象User
User=namedtuple('User',('name','age','city'))
#给命名元组传值
user1=User("li",18, "西安")
#打印命名元组
print(user1)
print(user1.name)
print(user1.age)

"""
python中:
==用于判断类型和值是否相等
is用于判断类型和值是否相等,内存地址是否相等, is也被叫做同一性运算符
"""
print(1 == '1') # false 整型不等于字符串
li = [1, 2, 3, 'a']
li1 = li.copy()
print(li1 == li) #True,均为列表,且值相等
print(id(li),id(li1)) #查看内存地址
print(li1 is li) #False, 类型和值相等,但是内存地址不同

上一篇:深度学习系列1——Pytorch 图像分类(LeNet)
下一篇:戒烟搞笑句子