• python笔记---内置容器


    python内置容器:列表、字典、集合、元组,都可以容纳数据。

    1、列表

      相当于Java中的List集合,可以动态改变大小。区别是Java中类型必须是一样的,这里可以是不同类型的元素。

    xs = [3, 1, 2]    # 创建一个List集合
    print(xs, xs[2])  # Prints "[3, 1, 2] 2"
    print(xs[-1])     # 倒数第一个
    xs[2] = 'foo'     # 下标为2的元素改为‘foo’字符串
    print(xs)         # Prints "[3, 1, 'foo']"
    xs.append('bar')  # 追加一个新的元素
    print(xs)         # Prints "[3, 1, 'foo', 'bar']"
    x = xs.pop()      # 弹出最后一个元素,出栈操作,并返回出栈的元素。
    print(x, xs)      # Prints "bar [3, 1, 'foo']"

    如果要访问循环体内每个元素的索引,请使用内置的 enumerate(枚举) 函数:

    animals = ['cat', 'dog', 'monkey']
    for idx, animal in enumerate(animals):
        print('#%d: %s' % (idx + 1, animal))
    # Prints "#1: cat", "#2: dog", "#3: monkey

    列表推导式

    nums = [0, 1, 2, 3, 4]
    squares = [x ** 2 for x in nums]   # nums中的每个元素的平方
    print(squares)   # Prints [0, 1, 4, 9, 16]

    # 还可以附加其他的条件
    nums = [0, 1, 2, 3, 4] even_squares = [x ** 2 for x in nums if x % 2 == 0] print(even_squares) # Prints "[0, 4, 16]"

    2、字典

    字典存储(键,值)对,类似于Java中的Map

    d = {'cat': 'cute', 'dog': 'furry'}  # 以冒号区分键和值,以逗号区分每队键值
    print(d['cat'])       # 根据键获取值
    print('cat' in d)     # 检查该键是否存在于该容器中。
    d['fish'] = 'wet'     # 设置一对键值
    print(d['fish'])      # Prints "wet"
    # print(d['monkey'])  # KeyError: 'monkey' not a key of d
    print(d.get('monkey', 'N/A'))  # Get an element with a default; prints "N/A"
    print(d.get('fish', 'N/A'))    # Get an element with a default; prints "wet"
    del d['fish']         # 删除键为‘fish’的键值
    print(d.get('fish', 'N/A')) # "fish" is no longer 

    #
    字典的遍历 d = {'person': 2, 'cat': 4, 'spider': 8} for animal in d:    # 依次获取d中的键 legs = d[animal]  # 根据获取的键得到值 print('A %s has %d legs' % (animal, legs))

    # 同时访问键及其对应的值,请使用items方法: d = {'person': 2, 'cat': 4, 'spider': 8} for animal, legs in d.items():    # 分别获取d中元素的键和值 print('A %s has %d legs' % (animal, legs)) # Prints "A person has 2 legs", "A cat has 4 legs", "A spider has 8 legs"

    3、集合(set)

    集合和列表的区别:

    1、列表是有序的,集合是无序的

    2、列表是可以含有相同元素的,集合是不含有相同元素的

    对于集合,加入相同的元素是无效的。

    推导式:

    from math import sqrt
    nums = {int(sqrt(x)) for x in range(30)}  # 0--29 依次开方,向下取整
    print(nums)

    4、元组

    元组是(不可变的)有序值列表。 元组在很多方面类似于列表; 其中一个最重要的区别是元组可以用作字典中的键和集合的元素,而列表则不能。

    d = {(x, x + 1): x for x in range(10)}   # d是一个字典,元素为(0--9,1--10):0--9,该字典中的键是元组
    t = (5, 6)        
    print(type(t))    
    print(d[t])      
    print(d[(1, 2)]) 
  • 相关阅读:
    pair<,>
    PTA 5-8 File Transfer (25)
    PTA 5-6 Root of AVL Tree (25)
    PTA 5-5 Tree Traversals Again (25)
    HDU4288 Coder(线段树)
    CodeForces 371D Vessels(树状数组)
    POJ2762 Going from u to v or from v to u(单连通 缩点)
    LightOJ 1030 Discovering Gold(期望 概率)
    HDU5115 Dire Wolf(区间DP)
    HDU4008 Parent and son(树形DP LCA)
  • 原文地址:https://www.cnblogs.com/smartmsl/p/10575674.html
Copyright © 2020-2023  润新知