列表 元组

day04

一丶列表

  1. 定义格式:

    是一个容器,由 [ ]表示,元素与元素之间用逗号隔开.

    如:name=["张三","李四"]

  2. 作用:

    存储任意类型的数据 (32位机器能存5亿多,64为机器存储更多)

  3. 特点:

    可变 (增,删,改,查) 默认从左到右 ,从0开始 . 

    有序(索引,切片,步长)

  4. 操作:

    增 , 删 , 改 ,查 ,索引,切片,步长 👇

#列表的两种定义方式
   name=["香蕉","西瓜","水蜜桃","桔子",1,2,3]  # 常用
   a=list('abc')      #迭代生成列表 -->['a','b','c'] 不常用
   
####增
#append("梨子") 追加 ,追加到列表的末尾.
print(name.append("梨子")) #---> [....(省略),"梨子"]

#insert(索引,"内容") 指定索引位置插入,参数一:索引,参数二:内容,效率低
print(name.insert(1,"苹果")) #-->['香蕉','苹果','西瓜']

#extend() 扩展 迭代添加到列表末尾 ,底层是通过for循环追加
print(name.extend('abc'))#--->[...,'a','b','c']
#底层:for i in 'abc' : li.append(i)

#列表合并,生成一个新的列表
a=[1,2,3]
b=[1,2,3]
print(a+b) # 列表合并

####删除
#pop() 弹出 ,默认删除最后一个, 唯一能够返回删除内容,
res=name.pop()
print(res) # -->得到删除的内容
print(name.pop(1))# 可以通过删除元素的索引

#remove() 通过删除元素的名字, 删除最左边的,指定一个参数
print(name.remove('香蕉'))

#clear() 清空列表
print(name.clear()) # -->[]

#del   删除整个列表 , 会出现列表未定义的错误
del name #删除整个列表 ,列表内存地址也会清理
def name[1] #删除指定索引的元素
del name[1:3] #删除区间
del name[1:4:2] #步长删除

#修改
#按照元素索引修改
name[1]='杏'
print(name[1]='杏')  ---> ['香蕉','杏',...]

#切片修改, 修改的内容可多可少,可指定任意空类型数据
name[1:5]='abc' # -->['香蕉','a','b','c']

#步长修改 (修改几个地方,填充几个数据,修改多少,不能不能少)
name[1:5:2]='你好'    # 迭代修改
name[1:5:2]='你','好'    # 指定修改

#查询
#索引查
print(name[1]) # 查询 索引为1 的数据

# 切片(顾头不顾尾) 以0 开头 ,或者结尾 ,可以忽略不写
print(name[1:3])  #取出前2个
print(name[-1])   #取出最后一个值

# for 循环 查看   ,遍历所有内容 . 列表是一个可迭代对象
for i in name:
   print(i)
   
 
####列表的嵌套 采⽤降维操作.⼀层⼀层的看就好.
li=[1,2,['哈密瓜',['冰水'],],3,['电视','西瓜']]
#取出电视
print(li[4][0])
#取出冰水
print(li[2][1][0])

二丶元组

  1. 定义格式:

    俗称不可变的列表,又称只读列表

    是一个容器,由 ( )表示,元素与元素之间用逗号隔开.

    如:name=("张三","李四")

  2. 作用:

    存储任意类型的数据

  3. 特点:

    不可变 (只能查看) 默认从左到右 ,从0开始 . 

    有序(索引,切片,步长)

  4. 操作:

    查 ,索引,切片,步长 👇

     

####元组
tu2=() # 空元组
print(type(tu2))

####区分 小括号中只有一个元素时,没有逗号,就是元素的本身类型
tu=('syt') # ---->str类型
tu1=(1)    # --->int 类型
tu2=(1,)   # 只有一个元素和逗号 ,也元组类型
print(type(tu),type(tu1),type(tu2))

#索引查看
tu=(1,2,3,4,'str')
print(tu[1])

#for 查询   元组是一个可迭代对象
tu=(1,2,3,4,'str')
for i in tu:
   print(i)
   
#切片,步长查看
tu = (1, "太⽩白", "李李⽩白", "太⿊黑", "怎么⿊黑")
print(tu[2:5])  # 切⽚片之后还是元组

#元组的嵌套
tu=(1,(2,(3,(4,(5,6,7,8),9),10),11),12)
#取出5
print(tu[1][1][1][1][0])
###元组不能修改, BUT元组中的子元素可变,修改的是元组中子元素中的数据规则:

这里元组的不可变的意思是子元素不可变. 而子元素内部的子元素是可 以变, 这取决于子元素是否是可变对象. 

#修改的不是元组,而是元组中能够可修改的数据类型中的数据,如列表[]
tu=(1,2,3,['a',['e'],'b'])

tu[3][1][0]='d'
print(tu) # ---->(1, 2, 3, ['a', ['d'], 'b'])

 

 

 

posted on 2020-01-11 15:11  向往1  阅读(185)  评论(0编辑  收藏  举报

导航

……