3-2、python内置数据类型(列表和元组)
创始人
2024-01-28 10:11:11

文章目录

  • 序列
  • 列表
    • 列表的创建
    • 列表的基本特性
      • 连接操作符和重复操作符
      • 成员操作符(in和not in)
      • 索引
      • 切片
      • for循环
    • 列表的常用方法
      • 增加
      • 修改(通过索引和切片重新赋值)
      • 查看
      • 删除
      • 其他操作
  • 元组(和列表相比,不能增删改元素)
    • 元组的创建
    • 元组的特性
    • 常用方法
  • 命名元组namedtuple
  • is和==的区别


列表和数组的区别:
数组只能存放同一种数据类型
而列表能存放不同数据类型

元组和列表的区别:
元组不能增删改、其他和列表一样

序列

  • 什么是序列:
    成员是有序排列的,且可以通过下标偏移量访问到它的一个(即索引)或者访问几个成员(即切片),这类类型统称为序列。

  • 序列数据类型包括:字符串、列表和元组、

  • 特点:支持以下特性:
    索引和切片操作符
    成员关系操作符(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]

在这里插入图片描述

成员操作符(in和not in)

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

在这里插入图片描述

for循环

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

在这里插入图片描述

命名元组namedtuple

对元组中的每个元素都设置了名字,在操作以及读代码的时候更加方便

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)

在这里插入图片描述

is和==的区别

"""
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, 类型和值相等,但是内存地址不同

在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
不用电脑怎么设置苹果铃声 ip... 需要一个app,加上苹果自带的app即可1、手机下载爱思极速版。因为之前换手机搬移数据时店员帮忙整理...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
才高八斗的主人公 三顾茅庐的主... 古代君王在建立自己的政治体系之时,大多会采取一些礼贤下士的手段,对于一些有卓越才能的人放低姿态。因为...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...