1. 列表

  • 数据结构:以某种方式(如通过编号)组合起来的元素(如数,字符乃至其他数据结构)集合。
  • 在python中,最基本的数据结构为序列。序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,以此类推。
  • 偏移量:相对于序列开头的偏移量

1.1 序列

  • 容器(container):可包含其他对象的对象
  • 主要的容器:序列(列表和元组(索引)),映射(字典(键))和集合。

1.2 通用的序列操作

  • 索引
a = [1, 3, 5, 7]
print(a[1]) # 打印3
  • 切片
a = [1, 3, 5, 7, 9, 11, 13]
print(a[1:3]) # [3,5]
print(a[-3:-1]) # [9, 11]
print(a[:3]) # [1, 3 , 5]
print(a[4:]) # [9, 11, 13]
print(a[:]) # [1, 3, 5, 7, 9, 11, 13]
print(a[1:6:2]) # [3, 7, 11],指定步长
print(a[5:1:-1]) # [11, 9, 7],注意开始索引大于结束索引
  • 序列相加
print([1, 2, 3] + [4, 5, 6])  # [1, 2, 3, 4, 5, 6]
  • 乘法
print([1] * 5)  # [1, 1, 1, 1, 1]
print([none] * 5) # 创建指定长度空列表
  • 成员资格

要检查特定的值是否包含在序列内,可使用运算符in,返回布尔值。

name = 'zhaojun'
print('zh' in name) # True
hobby_list = ['sing', 'dancing', 'rap', 'basketball', 'music']
print('run' in hobby_list) # False
  • 长度、最大值、最小值
nums = [1, 3, 5, 2, 4]
print(len(nums)) # 5
print(max(nums)) # 5
print(min(nums)) # 1

1.3 列表的基本操作

  • 修改列表:给元素赋值
nums = [1, 2, 3]
x[1] = 5
print(x) # [1, 5, 3]
  • 删除元素
nums = [1, 2, 3]
del nums[2]
print(nums) # [1, 2]
  • 给切片赋值
nums = [1, 2, 3, 4, 5, 6, 7]
nums[:3] = [0, 0, 0]
print(nums) # [0, 0, 0, 4, 5, 6, 7] # 赋值是将整段插入切片位置,不考虑数量
nums = [1, 2, 3, 4, 5, 6, 7]
nums[1:3] = [0, 0, 0, 0]
print(nums) # [1, 0, 0, 0, 0, 4, 5, 6, 7]

1.4 列表方法

  • append(就地修改):将一个对象加到列表末尾。
nums = [1, 2, 3, 4]
nums.append(5)
print(nums) # [1, 2, 3, 4, 5]
  • clear:就地清空列表内容。
nums = [1, 2, 3, 4]
nums.clear()
print(nums) # [] 返回空列表 # 用切片赋值实现
nums1 = [1, 2, 3, 4]
nums1[:] = []
print[nums1] # []
  • copy:复制列表
nums = [1, 2, 3, 4]
nums1 = nums.copy()
print(nums1)
print(id(nums))
print(id(nums1))
nums.append(5)
print(nums)
print(nums1) """
执行结果为:
[1, 2, 3, 4]
2193656132360
2193656116168
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
"""
  • count:计算指定的元素在列表中出现了多少次。
nums = [1, 2, 2, 3, 4, 4]
print(nums.count(2)) # 2
  • entend:将多个值附加到列表末尾(扩展列表)
a = [1, 2, 3]
b = [4, 5, 6]
a.entend(b)
print(a) # [1, 2, 3, 4, 5, 6]
  • index:在列表中查找指定值第一次出现的索引。如果搜不到,就会引发异常,ValueError。
a = ['a', 'b', 'c', 'd']
print(a.index('b')) # 1
  • insert:将一个对象插入列表。
nums = [1, 2, 3, 4, 5]
nums.insert(3, '6')
print(nums) # [1, 2, 3, '6', 4, 5]
  • pop:从列表中删除一个元素(末尾为最后一个元素),并返回这一元素。

    使用pop可实现一种常见的数据结构———栈(stack),后进先出(LIFO)。

    push和pop是大家普遍接受的两种栈操作(加入和取走)的名称。python没有提供,但可用append代替。

    要创建先进先出(FIFO)的队列,可使用insert(0, ...)代替append,也可继续使用append但弹出用pop(0)。

x = [1, 2, 3]
a = x.pop()
print(a) # 3
print(x) # [1, 2]
b = x.pop(0)
print(b) # 1
print(x) # [2]
  • remove:删除第一个为指定值的元素(就地修改不返回值)。
x = ['to', 'be', 'or', 'not', 'to', 'be']
x.remove('be')
print(x) # ['to', 'or', 'not', 'to', 'be']
  • reverse:按相反的顺序排列列表中的元素。

    如果要按相反的顺序迭代序列,可使用函数reversed,这个函数不返回列表,而是返回一个迭代器。

x = [1, 2, 3]
x.reverse()
print(x) # [3, 2, 1]
  • sort:对列表就地排序。

    sorted函数:对列表排序,返回排序后列表,原列表不变。

a = [1, 3, 5, 2, 4]
a.sort()
print(a) # [1, 2, 3, 4, 5] b = [1, 3, 5, 2, 4]
c = sorted(b)
print(b) # [1, 3, 5, 2, 4]
print(c) # [1, 2, 3, 4, 5]

Python基础之列表内置方法的更多相关文章

  1. python基础之反射内置方法元类

    补充内置函数 isinstance(obj,Foo)   # 判断obj是不是foo的实例 issubclass()      # 判断一个类是不是另一个类的子类 反射 什么是反射? 通过字符串来操作 ...

  2. Python基础之字典内置方法

    目录 1. 字典 1.1 字典的作用 1.2 创建和使用字典 1.2.1 dict类 1.2.2 基本的字典操作 1.2.3 字典方法 1. 字典 映射:可以通过名称来访问其各个值的数据结构. 字典是 ...

  3. 06 python初学 (列表内置方法)

    目录: type(a) is list :判断 a 是不是列表.返回 True False count:计算列表内某一元素出现的次数 extend:在列表末尾一次性添加另一列表中的全部值 index: ...

  4. python中的列表内置方法小结

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- ''' names=['zhangyu','mahongyan','zhangguobin','shac ...

  5. for循环,数字、字符串和列表内置方法

    目录 控制流程之for循环 基本语法 for+break for+continue for+else for循环打印lodaing 数字类型内置方法 整型 int 浮点型 float 字符串内置方法 ...

  6. Python 数据类型常用的内置方法(三)

    目录 Python 数据类型常用的内置方法(三) 1.列表内置方法 1.sort():升序 2.reverse():颠倒顺序 3.列表比较运算 2.字典内置方法 1.对Key的操作 2.len( )- ...

  7. Python 数据类型常用的内置方法(二)

    目录 Python 数据类型常用的内置方法(二) 1.字符串类型常用内置方法 1.upper.lower.isupper.islower 2.startswith.endswith 3.format ...

  8. Python 数据类型常用的内置方法(一)

    目录 Python 数据类型常用的内置方法 1.整型 int 2.浮点型 float 字符串转浮点型: 3.字符串 str 多种类型转字符型: 索引 切片 len( )方法:统计字符串长度/个数 移除 ...

  9. python今日分享(内置方法)

    目录 一.习题详解 二.数据类型的内置方法理论 三.整型相关操作 四.浮点型相关操作 五.字符串相关操作 六.列表相关操作 今日详解 一.习题详解 1.计算1-100所有数据之和 all_num = ...

随机推荐

  1. Beta阶段性总结

    1.题士开发总结 2.反思 2.1 Issue管理 从0522敲定各个功能的API后,团队成员及时沟通,积极开发,但由于开发过程没能有效体现在issue上(如未能及时在issue上形成记录,功能开发完 ...

  2. Noip模拟34 2021.8.9

    T1 Merchant 一眼二分,然后想了想维护凸包,好像并没有什么关系, 然后又想了想维护一个栈,发现跳指针细节过多不想打 最后直接打了二分,大点跑的飞快,感觉比较稳,出来$78$分 是没用神奇的$ ...

  3. 【SDOI2014】数数(补)

    见 AC自动机(补坑了) [SDOI2014] 数数 简要题意:  我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为子串.例如当S={22,333,0233}时 ...

  4. hdu 1171 Big Event in HDU(背包DP)

    题意: 杭电搬迁,有N种设备,每种设备有个价值V,数量M,要求将这些设备平分,使得平分后两边的总价值尽可能地相等. 输出两边各自的总价值. 思路: 背包DP后,P=所有的总价值/2,然后从P开始往两边 ...

  5. python 处理xml 数据

    1 import xml.sax 2 import xml.sax.handler 3 4 # python 处理xml 数据 类,将xml数据转化为字典 5 ''' 6 原数据:<?xml v ...

  6. 重新整理 .net core 实践篇——— filter[四十四]

    前言 简单介绍一下filter 正文 filter 的种类,微软文档中写道: 每种筛选器类型都在筛选器管道中的不同阶段执行: 授权筛选器最先运行,用于确定是否已针对请求为用户授权. 如果请求未获授权, ...

  7. ONVIF协议客户端

    前几天跟大家聊了一些关于ONVIF的一些基础知识,它的工作原理以及优势.今天安徽思蔷信息科技为带大家了解一下simpleonvif 百度云盘下载地址:链接:https://pan.baidu.com/ ...

  8. 大数据SQL中的Join谓词下推,真的那么难懂?

    听到谓词下推这个词,是不是觉得很高大上,找点资料看了半天才能搞懂概念和思想,借这个机会好好学习一下吧. 引用范欣欣大佬的博客中写道,以前经常满大街听到谓词下推,然而对谓词下推却总感觉懵懵懂懂,并不明白 ...

  9. LeetCode -90. 子集 II C++ (回溯法)

    class Solution { public: vector<vector<int>> subsetsWithDup(vector<int>& nums) ...

  10. No versions available for io.grpc:grpc-core:jar:[1.13.1] within specified range

    No versions available for i{0}:[1.13.1] within specified range maven打包的时候报错是由于同一个jar包有多个版本导致的版本冲突 解决 ...