zoukankan      html  css  js  c++  java
  • 【277】◀▶ Python 列表/元组/字典说明

    目录:


    参考:Python 列表(List)使用说明

    列表截取很灵活,下面通过例子说明:

    还可以通过 a[0:8:2] 来截取

    >>> a
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> a[-1]                                           # 最后一个元素
    9
    >>> a[-2]                                           # 倒数第二个
    8
    >>> a[:3]                                           # 第一个到索引为(3-1)的,不包括3
    [0, 1, 2]
    >>> a[-3:]                                           # 倒数第三个到最后
    [7, 8, 9]
    

    参考:Python 元组(Tuple)使用说明

    • Python的元组与列表类似,不同之处在于元组的元素不能修改
    • 元组使用小括号,列表使用方括号(例如记录坐标点,a = (123, 37))。
    • 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
    • 获取单个要素通过方括号,例如 dimension[0]

    参考:Python 字典使用说明

    • 字典是另一种可变容器模型,且可存储任意类型对象(类似 HTML 和 XML 的标签与值)。
    • 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
    • d = {key1 : value1, key2 : value2 }

    代码实现:按照数字排序,获取前四位数字对应的分类的数目

    >>> films_results = [128, 118, 16, 18, 20, 130]
    >>> films_class = ['Action', 'Action', 'Romance', 'Romance', 'Romance', 'Action']
    
    >>> sortedIndices = np.argsort(films_results)
    >>> sortedIndices
    array([2, 3, 4, 1, 0, 5], dtype=int64)
    
    >>> k=4
    >>> classCount = {}
    
    >>> for i in range(k):
    	voteLabel = films_class[sortedIndices[i]]
    	classCount[voteLabel] = classCount.get(voteLabel, 0) + 1
    
    >>> classCount
    {'Romance': 3, 'Action': 1}
    

    dict.get(key,default=None),字典的get()方法,返回指定键的值,如果值不在字典中返回默认值。  

    dict.fromkeys(iterable, value=None, /): Create a new dictionary with keys from iterable and values set to value.

    用来创建一个新的字典,keys 保留 iterable 的,值按照 value。


    前言
     

    列表是Python中最基本的数据结构。列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。列表的数据项不需要具有相同的类型。

    Python 的元组与列表类似,不同之处在于元组的元素不能修改元组使用小括号列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    tup1 = ('physics', 'chemistry', 1997, 2000);
    tup2 = (1, 2, 3, 4, 5 );
    tup3 = "a", "b", "c", "d";
    

    字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

    d = {key1 : value1, key2 : value2 }
    

    键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    本文以 列表(List) 为例。


    一、访问列表中的值
     
    list1 = ['physics', 'chemistry', 1997, 2000]
    list2 = [1, 2, 3, 4, 5]
    list3 = ["a", "b", "c", "d", "e"]
    
    print list1
    print list2
    print list3

    print list1[0]
    print list2[2:]
    print list3[1:4]

    ********** RESULTS **********

    ['physics', 'chemistry', 1997, 2000]
    [1, 2, 3, 4, 5]
    ['a', 'b', 'c', 'd', 'e']

    physics
    [3, 4, 5]
    ['b', 'c', 'd']
    二、更新列表
     
    list1 = ['physics', 'chemistry', 1997, 2000]
    print list1[1]
    
    list1[1] = 'math'
    print list1[1]
    

    ********** RESULTS **********

    chemistry
    math
    
    三、删除列表元素
     

    可以使用 del 语句来删除列表的的元素,如下实例:

    list1 = ['physics', 'chemistry', 1997, 2000]
    print list1
    print list1[1]
    
    del list1[1]
    print list1
    print list1[1]
    

    ********** RESULTS **********

    ['physics', 'chemistry', 1997, 2000]
    chemistry
    ['physics', 1997, 2000]
    1997
    
    四、Python 列表脚本操作符
     

    列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。如下所示:

    Python 表达式结果描述
    len([1, 2, 3]) 3 长度
    list[:2]、list[-3:]、list[:]   灵活截取
    [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
    ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
    3 in [1, 2, 3] True 元素是否存在于列表中
    4 not in [1, 2, 3] True 元素是否不存在于列表中
    for x in [1, 2, 3]: print x, 1 2 3 迭代
    [i+1 for i in range(0, 5)]   通过已有列表建立新列表
    >>> a
    [0, 1, 2, 3, 4]
    >>> b = [i+1 for i in a]
    >>> b
    [1, 2, 3, 4, 5]
    >>> c = a + 1
    >>> [i for i in range(0, 5)]
    [0, 1, 2, 3, 4]
    >>> [str(i) for i in range(0, 5)]
    ['0', '1', '2', '3', '4']
    
    list1 = ['physics', 'chemistry', 1997, 2000]
    print len(list1)
    
    list2 = list1 + list1
    list3 = list1 * 3
    
    print list2
    print list3
    
    if(1997 in list1):
    	print list1
    else:
    	print list2
    
    for x in list1:
    	print x
    

    ********** RESULTS **********

    4
    
    ['physics', 'chemistry', 1997, 2000, 'physics', 'chemistry', 1997, 2000]
    ['physics', 'chemistry', 1997, 2000, 'physics', 'chemistry', 1997, 2000, 'physics', 'chemistry', 1997, 2000]
    
    ['physics', 'chemistry', 1997, 2000]
    
    physics
    chemistry
    1997
    2000
    
    五、Python 列表函数 & 方法
     

    Python包含以下函数:

    序号函数
    1 cmp(list1, list2)
    比较两个列表的元素
    说明:list1 与 list2 一样,返回值为 0
    2 len(list)
    列表元素个数
    3 max(list)
    返回列表元素最大值
    4 min(list)
    返回列表元素最小值
    5 list(seq)
    将元组转换为列表

    Python 包含以下方法:

    序号方法
    1 list.append(obj)
    在列表末尾添加新的对象
    2 list.count(obj)
    统计某个元素在列表中出现的次数
    3 list.extend(seq)
    在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    4 list.index(obj)
    从列表中找出某个值第一个匹配项的索引位置
    5 list.insert(index, obj)
    将对象插入列表
    6 list.pop(obj=list[-1])
    移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    7 list.remove(obj)
    移除列表中某个值的第一个匹配项
    8 list.reverse()
    反向列表中元素
    9 list.sort([func])
    对原列表进行排序

  • 相关阅读:
    poj 1789 每个字符串不同的字母数代表两个结点间的权值 (MST)
    poj 1251 poj 1258 hdu 1863 poj 1287 poj 2421 hdu 1233 最小生成树模板题
    poj 1631 最多能有多少条不交叉的线 最大非降子序列 (LIS)
    hdu 5256 最少修改多少个数 能使原数列严格递增 (LIS)
    hdu 1025 上面n个点与下面n个点对应连线 求最多能连有多少条不相交的线 (LIS)
    Gym 100512F Funny Game (博弈+数论)
    UVa 12714 Two Points Revisited (水题,计算几何)
    UVa 12717 Fiasco (BFS模拟)
    UVa 12718 Dromicpalin Substrings (暴力)
    UVa 12716 && UVaLive 6657 GCD XOR (数论)
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/8035915.html
Copyright © 2011-2022 走看看