zoukankan      html  css  js  c++  java
  • 列表 元组 range

    2019 年 7 月 9 日

    列表———list------容器

    **列表:存储数据,支持多个数据类型,比如 :字符串 数字 布尔值 列表 集合 元组 **

    ​ 特点 : 有序 可变 支持索引

    (定义一个列表不要用list,一般使用 lst)

    # lst = ["alex",123,True]    #用逗号分隔的是一个元素
    # print(lst[0])              #索引
    # print(id(lst[0])           #肉眼可见的是 0 这个位子的 alex ,其实真正的内存地址是一长串的数字
                               #id 获取的是对象的内存地址
    
    #**可变说的是列表可变,但是字符串不可变**. 
    下面列举一下
    
    #字符串
    # s = "alex"
    # s[0] = "b"
    # print((s))               #'str' object does not support item assignment  直接报错  列表规则不能适用于字符串
                             #目前我的理解就是内存地址在字符串中是不可变的,但是对于字符串中 replace
                             # 来说只是拓展了新的内存空间,而不是在原有的基础上改变
    #列表
    # lst = ["alex",123,True]
    # lst[0] = "dsb"
    # print(lst)               #['dsb', 123, True]
    

    列表的增加

    #lst.append()       #追加 在列表的最后位置添加一个内容
    lst = ["alex",123,True]
    lst.append("大煎饼")
    print(lst)          #['alex', 123, True, '大煎饼']  
    
    #lst.insert()       #插入   以后尽量不要使用   当数据比较大的时候会影响效率
    
    lst = ["alex",123,True]
    lst.insert(2,"大煎饼")   #在 2 这个位置上添加"大煎饼"
    print(lst)           #['alex', 123, '大煎饼', True]
    
    #lst.extend()     迭代添加      括号里的是可迭代的对象,不能放数字和布尔值    利用for 循环
    lst = ["alex",123,True]
    lst.extend("今天天气真好")   #列表是将一个一个元素拆开,在列表中展示,只有从后面加入,在前面添加位置输出都不对
    print(lst)         #结果   ['alex', 123, True, '今', '天', '天', '气', '真', '好']
    

    删除

    lst.pop()      # 弹  默认删除最后一个
    lst = ["alex",123,True]
    lst.pop()
    print(lst)
    
    #lst.pop()      # 通过指定索引进行删除    超过范围会报错
    lst = ["alex",123,True]
    lst.pop(1)
    print(lst)
    
    # lst.remove()    #移除            通过元素名字进行删除    要有重名就删除第一个,只删除一个
    lst = ["alex",123,True]
    lst.remove(123)
    print(lst)     #['alex', True]
    
    lst = ["alex",123,True]
    del lst[0]                         #  删除第一个元素  通过索引删除
    print(lst)    #[123, True]
    
    lst = ["alex",123,True]
    del lst[0:2]                          #通过切片删除前两个
    print(lst)
    
    lst = ["alex",123,True,"大黑哥",789,7890]
    del lst[0:3:2]                         #通过步长删除  
    print(lst)                             #[123, '大黑哥', 789, 7890]        
    
    #lst.clear()            清空
    lst = ["alex",123,True,"大黑哥",789,7890]
    lst.clear()
    print(lst)                                 #  输出   []   
    

    通过索引 切片 步长 修改

    lst = ["alex",123,True,"大黑哥",789,7890]
    lst[1] = "123"      #通过索引修改
    print(lst)          #['alex', '123', True, '大黑哥', 789, 7890]  
    
    lst = ["alex",123,True,"大黑哥",789,7890]
    lst[1:4] = "123"                #通过切片修改     后面的不可以是数字和布尔值  因为这是利用了 for 循环
    #lst[1:4] = "123456789"          元素可以超过切片的位数,不报错,强盗式插入,
                                ['alex', '1', '2', '3', '4', '5', '6', '7', '8', '9', 789, 7890]
    print(lst)                 #['alex', '1', '2', '3', 789, 7890]
    
    lst = ["alex",123,True,"大黑哥",789,7890]  #通过步长修改
    # lst[1:4:2] = "123"      这个报错  步长不为1 的时候必须用几个位置写几个位置 必须一一对应
    lst[1:4:2] = "12"         # ['alex', '1', True, '2', 789, 7890]   步长不为1 的时候必须用几个位置写几个位置
    print(lst)                #['alex', '1', '2', '3', 789, 7890]
    

    lst = ["alex",123,True,"大黑哥",789,7890]
    for i in lst:
        print(i)
    #
    alex
    123
    True
    大黑哥
    789
    7890
      
    

    列表的嵌套

    lst=[1,"alex","春生","小东北","渣弟",["大黑哥","冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]]
    lst[-1][-1][-2]
    

    元组-----tuple

    1. 有序,不可变 ,支持索引
    2. 用于存储一些比较重要的信息
    3. 元组在配置文件中使用
    4. 元组就是不可变列表

    除了不可变这就省去了列表中增删改哈哈 ,只剩下了查

    #定义的方式
    tu = (1,"alex","大黑哥",[123])
    print(tu)                #来一个对比    (1, 'alex', '大黑哥', [123])
    
    lst = [1,"alex",True,"大黑哥",[1,2,3]]
    print(lst)               #[1, 'alex', True, '大黑哥', [1, 2, 3]]
    
    #查
    
    tu = (1,"alex","大黑哥",[123])
    for i in tu:
        print(i)  
        
    #
    1
    alex
    大黑哥
    [123]    
        
        
        
    

    range———范围

    Python3 中 range 是一个可迭代的对象,写的是怎样的打印的时候就是什么样

    print(list(range (0,(10))))
    #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    Python2中获取的是一个列表,顾头不顾尾

    print(range (0,10))
    #[0,1,3,4,5,6,7,8,9]
    

    其他性质

    步长不写的时候默认为 1 步长也是有方向的

    range(起始位置,终止位置,步长)

    print(list(range(10,0,-1)))
    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    
    # 使用 for 循环和 range 打印 100~1
    for i in range(100,0,-1):
            print(i)
    
    #奇数
     for i in range(1,101,2):
        print(i)
    
    #偶数
    # for i in range(2,101,2):
    #     print(i)
    
    #被 6 整除
    for i in range(0, 101, 6):
        print(i)
    
  • 相关阅读:
    Delphi中Indy10的IdTcpClient和IdTcpServer数据通信
    Delphi中TStringList的使用
    VC2008中处理CStatic控件的单击STN_CLICKED消息
    VS2008中编译运行MFC应用程序时,出现无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案
    adb 常用命令大全
    Windows XP 下如何使用Qt Creator中的Git版本控制功能
    git安装及命令使用和github网站
    Win7下VS2008安装cocos2d-2.0-x-2.0.4模板时, 运行InstallWizardForVS2008.js文件执行失败的解决办法
    VC2008中将CString转换成const char*的一种有效方法
    VS2008中MFC对话框界面编程Caption中文乱码的解决办法
  • 原文地址:https://www.cnblogs.com/hualibokeyuan/p/11158947.html
Copyright © 2011-2022 走看看