美文网首页
Day 2 列表、集合、字典

Day 2 列表、集合、字典

作者: 瑶瑶_2930 | 来源:发表于2018-08-30 23:05 被阅读0次

    列表和成员运算符

    • list

      • 方括号创建列表
      • 可以把所有数据类型混在一起
      • 使用负数从列表末尾开始索引,-1 表示最后一个元素
    lst _of_random_things = [1, 3.4, 'a string', True]
    lst_of_random_things [len(lst_of_random_things) - 1]
    

    -->索引减一获取最后一个元素

    • list slicing(列表切片)

      • 下限索引包含在内,上限索引排除在外
        • 简写
          • 从列表开头开始,忽略起始值
            lst_of_random_things[:2]
          • 返回到列表结尾的所有值,忽略最后一个
            lst_of_random_things[1:]
          • in & not in 返回bool,是否存在于列表中
            'this' in 'this is a string'
          • 倒数三个值
            lst[-3:]
    sentence2 = ["I", "wish", "to", "register", "a", "complaint", "."]
    sentence2[0:2] = ["We", "want"]
    
    • 可变性和顺序(mutability & order)

      • Mutability --> Whether an object can change its values after it has been created.
        list -> mutable, string ->immutable
    my_lst = [1, 2, 3, 4, 5]
    my_lst[0] = 'one' 
    print(my_lst)
    
       - Order  -->list & string 都是有序的
    

    列表方法

    • 可变相当于引用,指针,赋值其实是指向同一个地址,所以一个改变另一个也改变。不可变变量,赋值其实是另外开辟一个内存空间存值进去。


      Screen Shot 2018-08-31 at 1.58.45 PM.png
      Screen Shot 2018-08-31 at 2.00.48 PM.png
    • 实用的列表函数(一)

      • len() ->元素数量
      • max() ->最大元素。字符串:首字母按字母顺序排序最大
      • min() ->min
      • sorted() ->升序 ,降序--> print(sorted(lst, reverse = True)
    • 实用的列表函数(二)

      • join() --> 参数:字符串列表,返回:由分隔符分割,列表元素组成的字符串, 注意列表元素要用英文逗号隔开
    new_str = "\n".join(["fore", "aft", "starboard", "port"])
    print(new_str)
    
    • append() ->将元素添加到列表末尾
    letters = ['a', 'b', 'c', 'd' ]  
    letters.append('z')
    

    ⚠注意


    Screen Shot 2018-08-31 at 2.18.31 PM.png

    字典和恒等运算符

    • 字典

      • 数据类型:可变
      • 存储值:键值映射
      • 创建: elements = {"hydrogen": 1, "helium": 2,"carbon": 6}
      • 查询:elements["hydrogen"]
      • 插入新值:elements["lithium"] = 3
      • 检查某值是否在
        - print("carbon" in elements) -->返回bool
        - print(elements.get("dilithium")) -->返回None或值
      • 返回默认值的get
        elements.get('kry', 'There\'s no such element!')
        -->即key没找到时返回这句话
    • 恒等运算符

      • is -->检查两边是否恒等 注意与相等 ==区别
      • is not -->检查两边是否不恒等
      • print(elements.get("dilithium") is None)

    集合

    • 唯一性,无序性,不可重复性
    • 一个用途:快速删除列表中的重复项 -->可见list特点:有序性,可重复性
    numbers = [1,2,6,3,1,1,6]
    unique_nums = set(numbers)
    print(unique_nums)
    
    • 方法 --> in ,add(), pop()-->随即删除一个元素,union,intersection, difference
    fruit = {"apple", "banana", "orange", "grapefruit"}
    
    print("watermelon" in fruit)
    
    fruit.add("watermelon")
    print(fruit)
    
    print(fruit.pop())
    print(fruit)
    

    复合数据结构

    • 在其他容器中包含容器
    elements = {"hydrogen": {"number": 1,
                                         "weight": 1.00794,
                                          "symbol": "H"},
                          "helium": {"number":2,
                                           "weight": 4.002602,
                                           "symbol": "He"}}
    # elements字典将键映射仍是字典
    #访问嵌套字典的元素
    hydrogen_weight = elements["hydrogen"]["weight"]
    

    总结

    附:

    每日一题:什么叫可变对象,什么叫不可变对象,python中哪些对象是可变的,哪些对象是不可变的?

    • 可变对象:对象创建完毕后可以更改该对象。从内存角度:可以直接在对象所指的内存空间修改数据
    • 不可变对象:对象创建完毕后不可更改该对象。从内存角度:不同对象对应不同的内存空间(?)
    • python中的可变对象:list,dict
    • python中的不可变对象: string,int,float,tuple

    相关文章

      网友评论

          本文标题:Day 2 列表、集合、字典

          本文链接:https://www.haomeiwen.com/subject/rfdjwftx.html