zoukankan      html  css  js  c++  java
  • Python学习笔记系列——数据结构相关

      Python有4种数据结构:列表(list)、字典(dictionary)、元组(Tuple)、集合(set)。从最直接的感官上来说,这四种数据结构的区别是:列表中的元素使用方括号括起来,字典和集合是花括号,元组是圆括号,其中字典中的元素都是带有“:”的key-value对应关系组。

    1、列表(List)

    #1、列表中的每一个元素都是可以变的
    #2、列表中的元素都是有序的,也就是说每一个元素都有一个位置
    #3、列表可以容纳Python中的任何对象
    
    fruit = ['Apple','Orange','pear']
    fruit.insert(1,'grape') #在第二个数据前面插入
    print(fruit)
    fruit.remove('pear')    #删除
    print(fruit)
    fruit[0] = 'Grapefruit' #替换
    print(fruit)

    2、字典(Dictionary)

    #1、字典中数据必须是以键值对的形式出现
    #2、逻辑上,键是不能重复的,而值可以重复
    #3、字典中的键Key是不可变的,也就是无法修改的。而值Value是可变的,可修改的,可以是任何对象
    
    a = {'key':'123','key':'123'}     #重复的键值对,只会输出一个
    print(a)
    
    Nasdaq_code = {'BIDU':'baidu','SINA':'sina'}
    Nasdaq_code['YOKU'] = 'youku'     #添加元素
    print(Nasdaq_code)
    Nasdaq_code.update({'FB':'facebook','TSLA':'Tesla'}) #批量添加
    print(Nasdaq_code)
    del Nasdaq_code['FB']           #删除元素
    print(Nasdaq_code)

    3、元组(Tuple)

    #1、元组不可修改
    #2、元组可被查看索引,方式同列表
    letters = ('a','b','c','d','e','f')
    print(letters[0])

    4、集合(Set)

    #1、集合中的元素是无序、不重复的任何对象
    #2、集合不能被切片也不能被索引。可做集合运算,集合元素可以被添加还有删除
    
    a_set = {1,2,3,4}
    a_set.add(5)            #添加
    print(a_set)
    a_set.discard(5)        #删除
    print(a_set)

    5、推导式(列表解析式)

      现在我有10个元素要装进列表中,普通的写法是这样的:

    下面换成列表解析的方式来写,是这样的:

      如下图,列表推导式可以简单的看成两部分。红色虚线后面的是我们熟悉的for循环表达式,虚线前面的可以认为是我们想要放在列表中的元素。

    列表解析式的执行效率比较:(列表解析式的执行效率较高,性能较优)

    #推导式 list = [item for item in iterable],先iterable,在进行item的输出
    import time
    a=[]
    t0 = time.clock()
    for i in range(1,2000):#使用循环时的执行时间
        a.append(i)
    print(time.clock() - t0,'seconds process time')
    
    t0 = time.clock()
    b=[i for i in range(1,200)]#使用列表解析式的执行时间
    print(time.clock() - t0,'seconds process time')
    #列表解析式示例
    a = [i**2 for i in range(1,10)]
    print(a)
    c = [j+1 for j in range(1,10)]
    print(c)
    k = [n for n in range(1,10) if n %2 ==0]
    print(k)
    z = [letter.lower() for letter in 'ABCDEFGHIGKLMN']
    print(z)
    d = {i:i+1 for i in range(4)}
    print(d)
    g = {i:j for i,j in zip(range(1,6),'abcde')}
    print(g)
    l = {i:j.upper() for i,j in zip(range(1,6),'abcde')}
    print(l)
  • 相关阅读:
    Excel如何根据基类标红重复内容
    使用FRP配置Windows远程控制
    CentOS 7安装gevent
    CentOS7安装pip
    把音频文件压缩变小的方法
    Linux中nohup和&的用法和区别
    Windows下安装redis服务
    TFS解锁命令
    linux下用rpm 安装jdk
    avascript的匿名函数
  • 原文地址:https://www.cnblogs.com/zichuan/p/9378200.html
Copyright © 2011-2022 走看看