zoukankan      html  css  js  c++  java
  • Python 列表与元组基础知识

    列表 list 和 元组 tuple 是Python中最常见的两种数据结构 

    都是可以放置任意数据类型有序集合 

    在大多数编程语言中,集合的数据类型必须一致,但在Python 的列表和元组中,无此要求

    # list
    l = [1, "hello", 1.23, {"name": "xiaoming"}, [1, 2, 3], (1, 2, 3), {1, 2, 3, 2, 3}]
    # tuple
    t = (1, "hello", 1.23, {"name": "xiaoming"}, [1, 2, 3], (1, 2, 3), {1, 2, 3, 2, 3})

    列表是动态的 mutable

    元组是静态的 immutable ,tuple的每个元素,指向的地址不变

    l = [1,2,3]
    t = (1,2,3,l)
    l.append("hello")
    print(t)
    
    # 输出 (1, 2, 3, [1, 2, 3, 'hello'])

    这里的元组t 有一个可变元素 l,l 值改变后,t 看似发生了改变,但是t 中元素指向的地址仍不变

    list 和 tuple 内部实现都是 array

    列表生成式

    # 生成 0~10 的列表
    # range(0,11) == range(11) ==range(0,11,1)
    # range(stop) -> range object
    # range(start, stop[, step]) -> range object
    
    l = [i for i in range(0, 11)]
    print(l)
    
    # 输出 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    # 生成 0~10 偶数
    # 1. 取余数
    l = [i for i in range(0, 11) if i % 2 == 0]
    print(l)
    
    # 2. 切片
    l = [i for i in range(0, 11)][0::2]
    print(l)
    
    # 3. range(start, stop[, step])
    l = [i for i in range(0, 11, 2)]
    print(l)
    
    # 输出都是 [0, 2, 4, 6, 8, 10]

    列表去重

    1. list --> set --> list

    l = [1, 2, 2, 3, 3, 3, 4, 4, 4]
    l = list(set(l))
    print(l)
    
    # 输出 [1, 2, 3, 4]

    2. dict

    l = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
    counter = {}
    for i in l:
        # 判断此元素是否有多个
        if i in counter:
            counter[i] += 1
        else:
            counter[i] = 1
    # key:value  key 为去重后元素, value 为该元素出现次数
    print(counter)
    print(list(counter.keys()))
    
    # 输出
    # {1: 1, 2: 2, 3: 3, 4: 4}
    # [1, 2, 3, 4]
  • 相关阅读:
    使用MTA HTML5统计API来分析数据
    .NET Core下操作Git,自动提交代码到 GitHub
    EPPlus.Core 处理 Excel 报错之天坑 WPS
    利用SQL生成模型实体类
    基于.NET Core开发的个人博客发布至CentOS小计
    Windows下MySQL安装流程,8.0以上版本ROOT密码报错及修改
    Redis快速入门及使用
    一些不错的网站
    一些精简的JavaScript代码集合
    MongoDB Shell 命令
  • 原文地址:https://www.cnblogs.com/jyang/p/13394688.html
Copyright © 2011-2022 走看看