zoukankan      html  css  js  c++  java
  • python入门(三)列表、元组、range()、字典

    列表(list)

    1. 列表简介:列表(list)是处理一组有序项目的数据结构。用方括号[]表示。可以进行添加,删除,替换,搜索操作。是可变的数据类型。列表可以嵌套和支持索引。

      name=[12,"哈哈"]#定义一个列表
      print(id(name[0]))#id获取对象的内存地址
      
      s="alex"
      s="wusir"
      s[0]="b"#报错 字符串是不可变的量
      
    2. 列表的增:append、insert、extend

      • #append:在列表末尾添加一个元素
        
        name=[12,"哈哈"]
        name.append(True)#在列表的末尾添加一个元素
        print(name)
        #结果为:12 哈哈  True
        
        #insert:指定索引进行插入
        name=[12,"哈哈"]
        name.insert(0,True)#insert(索引,要添加的元素);写上要添加的位置(索引值)和要添加的元素
        print(name)
        #结果为: True 12 哈哈
        
        #extend:在列表末尾追加可迭代对象中的元素来扩展列表
        name=[12,"哈哈"]
        name.extend("1123")#extend()方法中填写可迭代对象( 可迭代对象:字符串、列表、元祖、字典;不可迭代对象:数字和布尔型)
        print(name)
        #结果为:"12" "哈哈" "1" "1" "2" "3"
        name.extend([11,22])
        print(a)
        #结果为: "12" "哈哈" "11" "22"
        
    3. 列表的删:del、remove、pop、clear

      • #pop:默认删除最后一个;可以通过指定索引进行删除
        name=[11,22]
        name.pop()#默认删除最后一个
        print(name)
        #结果为:"11"
        name.pop(0)#指定索引进行删除
        print(name)
        #结果为:"22"
        
        #remove:通过元素名字进行删除
        name=["haha",True]
        name.remove("haha")#remove()括号中写要移除的元素
        print(name)
        #结果为: True
        
        #del:可以通过索引删除、切片删除、步长删除
        #通过索引删除
        name=[11,22,33,44,55,66]
        del name[0]#填写需要删除的索引
        print(name)
        #结果为:"22" "33" "44" "55" "66"
        
        #通过切片删除
        name=[11,22,33,44,55,66]
        del name[0:3]#删除索引0-2的元素
        print (name)
        #结果为:"44" "55" "66"
        
        #通过步长删除
        name=[11,22,33,44,55,66]
        del name[0:3:2]#删除索引0-2的元素,步长为2
        print(name)
        #结果为:"22" "44" "55" "66"
        
        #clear:清空列表
        name=[11,22,33,44,55,66]
        name.clear()
        print(name)
        #结果为[]
        
    4. 列表的改

      #通过索引改
      name=[11,22,33,44,55,66]
      name[0]=1
      print(name)
      #结果为1 22 33 44 55 66
      
      #通过切片改
      name=[11,22,33,44,55,66]
      name[0:3]="12345"#通过切片改,改变的值为可迭代对象,进行循环迭代,步长为1 不用一一对应
      print(name)
      #结果为:1 2 3 4 5 44 55 66
      
      #通过步长改
      name=[11,22,33,44,55,66]
      name[0:3:2]="12"#步长不为1的必须用一一对应,多一个也不行,少一个也不行
      print(name)
      #结果为:1 22 2 44 55 66
      
    5. 列表的查

      • name=[11,22,33,44,55,66]
        for x in name:
        	print(x)
        
    6. 列表的嵌套

      • name=[1,"alex","春生","小东北","渣弟",["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"],"冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]
        #假如要输出 肖锋的值
        print(name[5][4][3][0])
        #不管什么类型进行切片的时候获取到的都是源数据类型
        

    3.5 元组(tuple)

    1. 元组(touple)简介:有序、元素不可变、支持索引;元组用来存储一些重要的信息;元组在配置文件中会使用;元组就是不可变的列表

    2. 定义方式:

      tu=(1,"alex",True,"大黑哥",[1,2,3])
      

    3.6 range()方法

    1. range():范围

      • print(list(range(0,10)))#前闭后开
        #range()与列表切片不同的是:range()起始位置 终止位置 步长用逗号隔开;列表切片则用:隔开
        print(list(range(0,10,1))) #步长不写得时候默认为1  [0:10:1]
        print(list(range(10,-2,-1))) #步长不写得时候默认为1  [10:-2:-1]
        print(list(range(10))) #步长不写得时候默认为1  [:10]
        
      • 错误实例:

      • while range(0,10):#列表不为空为True 所以是死循环
        	print(1)
        
      • python2和python3的区别

      • # python3 中的range是一个可迭代对象 写得是怎样的打印的时候就是怎样
        # 获取成列表:list(range(0,10)) 顾头不顾尾
        # python2 中的range返回的是一个列表
        

    3.7 字典(dict)

    1. 字典简介:字典是无序的,可变的数据类型;用于存储数据,存储大量数据 字典要比列表快,将数据数据之间关联

    2. 定义一个字典:

      dic={1:1223,"haha":True,True:False}#字典中逗号分隔的叫做一个元素 1(键) 1223(值)
      #字典的键:为不可变的数据类型
      #可哈希的---不可变的数据类型---避免哈希冲突 使用了开放寻址法
      #不可哈希---可变的数据类型
      #字典的键:要去唯一----如果有重复将后面的覆盖前面的值
      
      #字典的值:可以任意
      
    3. 字典的增、删、改、查

      • 增:setdefault()

      • #增
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        dic["haha"]=10#暴力添加 如果该键不存在 则为添加;存在则将值进行修改
        print(dic)
        #结果为:{"常鑫":10,"李文虎":80,"张宇":100}
        dic["常鑫"]=1#进行修改
        print(dic)
        #结果为:{"常鑫":1,"李文虎":80,"张宇":100}
        
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        dic.setdefault("haha",11)#如果键不存在则进行添加
        dic.setdefault("常鑫":1)#如果键存在则不进行操作
        print(dic)
        #结果为:{"常鑫":10,"李文虎":80,"张宇":100,"haha":1}
        
        
      • 删:del、pop()

      • #删
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        del dic["常鑫"]#通过字典的键进行删除
        print(dic)#结果为:{"李文虎":80,"张宇":100}
        
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        dic.pop("常鑫")#通过字典的键进行删除 
        print(dic)#结果为{李文虎":80,"张宇":100}
        
      • 改:update()

      • #改
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        dic["常鑫"]=3#如果该键不存在 则为添加;存在则将值进行修改
        print(dic)#结果为{"常鑫":3,"李文虎":80,"张宇":100}
        
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        dic1={"常鑫":1,"haha":11}
        dic.update(dic1)#update括号中的字典级别高于update前面的字典 键无则添加,有则修改
        #结果为:{"常鑫":1,"李文虎":80,"张宇":100,"haha":1}
        
      • dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        for x in dic:
            print(x)#输出每个键值
        #结果为:
        #常鑫
        #李文虎
        #张宇
        
        
        #获取值
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        print(dic.get("张宇"))#获取字典中键为"张宇"的值并输出
        #结果为:100
        print(dic.get("haha"))#获取字典中键为"haha"的值并输出,不存在该键,返回None并输出
        
        print(dic["张宇"])#获取字典中键为"张宇"的值并输出
        #结果为100
        print(dic.get("haha"))#获取字典中键为"haha"的值并输出,不存在该键,报错
        
    4. 其他操作:

      • dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        
        #获取键
        print(dic.keys())#获取该字典所有键并输出;高仿列表支持for循环,不支持索引
        #结果为:dict_keys(['常鑫', '李文虎', '张宇'])
        
        for x in dic:
            print(x,dic[x])
            print(x,dic.get(x))
        #输出该字典的键和值
        #结果为:
        #常鑫 10
        #李文虎 80 		
        #张宇 100
        
        #获取值
        print(dic.values())#获取该字典所有值并输出
        #结果为:dict_values([10,80,100])
        
        #获取键和值
        print(dic.items())#输出所有的键和值
        #结果为:
        #常鑫 10
        #李文虎 80 		
        #张宇 100
        
    5. 解构

      • a,b=10,20
        print(a,b)#等号后边的值和前面的变量名要一一对应
        #结果为10 20
        
        a=10,12
        print(a)#本质上a是一个元组
        
        a,b="23"
        print(a,b)#结果为2 3
        
        a.b={1:a,3:b}
        print(a,b)
        #结果为1 3
        
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        for i in dic.items():
            print(i)
        #结果为:
        #('常鑫', 10)
        #('李文虎', 80)
        #('张宇', 100)
        
        dic={"常鑫":10,"李文虎":80,"张宇":100}#定义一个字典
        for x,y in dic.items():
            print(x,y)
        #结果为:
        #常鑫 10
        #李文虎 80 
        #张宇 100
        
    6. 字典的嵌套

      • dic={1005:{"常鑫":["大黑哥","大烧饼","吃大煎饼","肉夹馍","自行车","井盖",]}}
        #找到井盖并输出
        print(dic[1005]["常鑫"][5])
        
  • 相关阅读:
    redis
    Ubuntu 用VSFTP搭建FTP服务器
    ADO.NET中高效地使用数据库连接
    类型后面加问号 int?
    system.data.sqlclient.sqlexception:timeout expired
    BackgroundWorker超级详细的用法
    异步调用WCF服务,并将数据填入GridLookUpEdit中
    linq to entity报"不允许启动新事务,因为有其他线程正在该会话中运行."错误解决方法
    sql2005 数据库备份 对于服务器失败
    调用WCF服务返回list集合时出错的解决方法
  • 原文地址:https://www.cnblogs.com/zhangdadayou/p/11171843.html
Copyright © 2011-2022 走看看