本文主要介绍下python列表的的一些基本操作

列表是我们在python编程中常用的数据类型之一,通过列表我们可以对数据实现最方便的存储、修改等操作。

定义列表

names=['ZhangSan','LiSi','WangWu']

列表的访问:通过下表来访问列表中的元素,下标从0开始计数,还可以反着取,-1表示最后一个元素

 >>> names[0]
'ZhangSan'
>>> names[2]
'WangWu'
>>> names[-1]
'WangWu'
>>> names[-2]
'LiSi'
>>>

切片操作

 >>> names=['ZhangSan','LiSi','WangWu','ZhaoLiu','Tom','Amy']
>>> names[1:4] #取下标1到4之间的数据元素,包括1,不包括4
['LiSi', 'WangWu', 'ZhaoLiu']
>>> names[1:-1] #取小标1到-1的值,不包括-1
['LiSi', 'WangWu', 'ZhaoLiu', 'Tom']
>>> names[0:3]
['ZhangSan', 'LiSi', 'WangWu']
>>> names[:3] #如果是从头开始取,0可以忽略,跟上句结果一样
['ZhangSan', 'LiSi', 'WangWu']
>>> names[3:] #如果想取最后一位,必须不能写-1
['ZhaoLiu', 'Tom', 'Amy']
>>> names[3:-1] #不包含-1
['ZhaoLiu', 'Tom']
>>> names[0::2] #2代表步长,每隔一个元素就取一个
['ZhangSan', 'WangWu', 'Tom']
>>> names[::2] #和上句效果一样
['ZhangSan', 'WangWu', 'Tom']
>>>

追加操作:在列表最后追加元素列表

 >>> names=['ZhangSan','LiSi','WangWu']
>>> names.append("我是新人")
>>> names
['ZhangSan', 'LiSi', 'WangWu', '我是新人']
>>>

插入操作

 >>> names=['ZhangSan','LiSi','WangWu','Tony']
>>> names.insert(2,"Tom") #在WangWu前面插入Tom
>>> names
['ZhangSan', 'LiSi', 'Tom', 'WangWu', 'Tony']
>>> names.insert(4,"LuXi") #在WangWu后面插入LuXi
>>> names
['ZhangSan', 'LiSi', 'Tom', 'WangWu', 'LuXi', 'Tony']
>>>

修改操作

 >>> names=['ZhangSan','LiSi','WangWu','Tony']
>>> names[2]="John" ##将WangWu改成"John"
>>> names
['ZhangSan', 'LiSi', 'John', 'Tony']
>>>

删除操作

 >>> names=['ZhangSan','LiSi','WangWu','ZhaoLiu','Tony','Tom','LiLei']
>>> del names[2] #删除下标为2的元素,即WangWu
>>> names
['ZhangSan', 'LiSi', 'ZhaoLiu', 'Tony', 'Tom', 'LiLei']
>>> del names[4] #删除下标为4的元素,即Tom
>>> names
['ZhangSan', 'LiSi', 'ZhaoLiu', 'Tony', 'LiLei']
>>> names.remove("Tony") #删除指定的元素Tony
>>> names
['ZhangSan', 'LiSi', 'ZhaoLiu', 'LiLei']
>>> names.pop() #删除最后一个元素
'LiLei'
>>> names
['ZhangSan', 'LiSi', 'ZhaoLiu']
>>>

扩展操作

 >>> names=['ZhangSan', 'LiSi', 'ZhaoLiu']
>>> b=[1,2,3]
>>> names.extend(b)
>>> names
['ZhangSan', 'LiSi', 'ZhaoLiu', 1, 2, 3]
>>>

统计列表中相同元素的个数

 >>> names=['ZhangSan', 'LiSi', 'ZhaoLiu','LiSi',1, 2, 3]
>>> names.count("LiSi")
2
>>>

排序和翻转:优先级   特殊符号>数字>大写>小写

 >>> names=['ZhangSan', 'LiSi', 'ZhaoLiu','LiSi',1, 2, 3]
>>> names.sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < str() #在python3里面不同数据类型不能在一起排序
>>>
>>> names[-1]=''
>>> names[-2]=''
>>> names[-3]=''
>>> names
['LiSi', 'LiSi', 'ZhangSan', 'ZhaoLiu', '', '', '']
>>> names.sort() #将列表排序
>>> names
['', '', '', 'LiSi', 'LiSi', 'ZhangSan', 'ZhaoLiu']
>>> names.reverse() #将列表反转
>>> names
['ZhaoLiu', 'ZhangSan', 'LiSi', 'LiSi', '', '', '']
>>>

获取下标

 >>> names=['ZhaoLiu', 'ZhangSan', 'LiSi', 'LiSi', '', '', '']
>>> names.index('LiSi') #如果列表中有多个相同元素,只返回找到的第一个的下标
2
>>> names.index('')
4
>>>

浅拷贝copy():

浅复制并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。
 >>> names=['ZhaoLiu', 'ZhangSan',['lilei','luxi'], 'LiSi','', '', '']
>>> name_copy=names.copy() #只是浅复制
>>> names
['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '', '', '']
>>> name_copy
['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '', '', '']
>>> names[1]="张三" #只改变names里面的值,name_copy里面的不变
>>> names
['ZhaoLiu', '张三', ['lilei', 'luxi'], 'LiSi', '', '', '']
>>> name_copy
['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '', '', '']
>>> names[2][0]="LILEI" #names和name_copy里面的值都改变
>>> names
['ZhaoLiu', '张三', ['LILEI', 'luxi'], 'LiSi', '', '', '']
>>> name_copy
['ZhaoLiu', 'ZhangSan', ['LILEI', 'luxi'], 'LiSi', '', '', '']
>>> name_copy[2][1]='露西'
>>> names
['ZhaoLiu', '张三', ['LILEI', '露西'], 'LiSi', '', '', '']
>>> name_copy
['ZhaoLiu', 'ZhangSan', ['LILEI', '露西'], 'LiSi', '', '', '']

深复制deepcopy():

我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。
 #Author:Zhang XuLin
import copy
names=['ZhaoLiu', 'ZhangSan',['lilei','luxi'], 'LiSi','', '', '']
name_copy=copy.deepcopy(names)
print(names)
print(name_copy)
print("========================")
#['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1']
#['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1']
#========================
names[1]="张三"
print(names)
print(name_copy)
print("========================")
#['ZhaoLiu', '张三', ['lilei', 'luxi'], 'LiSi', '3', '2', '1']
#['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1']
#======================== names[2][0]="LILEI"
print(names)
print(name_copy)
print("************************************")
#['ZhaoLiu', '张三', ['LILEI', 'luxi'], 'LiSi', '3', '2', '1']
#['ZhaoLiu', 'ZhangSan', ['lilei', 'luxi'], 'LiSi', '3', '2', '1']
#************************************ name_copy[2][1]='露西'
print(names)
print(name_copy) #['ZhaoLiu', '张三', ['LILEI', 'luxi'], 'LiSi', '3', '2', '1']
#['ZhaoLiu', 'ZhangSan', ['lilei', '露西'], 'LiSi', '3', '2', '1']

清空和删除列表

 >>> names=['ZhaoLiu', 'ZhangSan',['lilei','luxi'], 'LiSi','', '', '']
>>> names.clear() #将列表清空
>>> names
[]
>>> del names #将列表删除
>>> names
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'names' is not defined
>>>

python学习之路--python基础之列表操作的更多相关文章

  1. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  2. Python学习之路-Day2-Python基础2

    Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...

  3. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  4. Python学习之路-Day1-Python基础

    学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...

  5. PYTHON学习之路_PYTHON基础(6)

    学习内容: Python模块介绍 1.time &datetime模块 2.random 3.shutil 4.shelve 5.xml处理 6.configparser 7.hashlib ...

  6. PYTHON学习之路_PYTHON基础(3)

    学习内容: 1.Python字典 2.Python集合 3.Python字符编码 4.Python文件操作 5.Python实例 一.Python字典 1.定义: dic1={'name':'alex ...

  7. PYTHON学习之路_PYTHON基础(2)

    学习内容: 1.Python数据类型与变量 2.Python字符串 3.Python列表 4.Python while循环 5.Python字典 6.Python实例 一.Python数据类型与变量 ...

  8. PYTHON学习之路_PYTHON基础(1)

    学习内容: 1.Python介绍 2.Python程序初接触和变量 3.Python用户交互 4.Python数据类型 5.Python循环if...(elif)...else 6.Python循环w ...

  9. Python学习之路1 - 基础入门

    本文内容 Python介绍 安装Python解释器 输出 变量 输入 条件判断语句 循环语句 模块讲解 三元运算 字符串和二进制的相互转化 本系列文章使用的Python版本为3.6.2 使用开发工具为 ...

  10. PYTHON学习之路_PYTHON基础(10)

    学习内容: Python进程与线程 1.线程及线程类 2.线程守护 3.线程等待 4.线程锁 5.信号量 6.timer用法 7.队列 8.事件驱动 9.生产者消费者模型 10.进程及进程同步 11. ...

随机推荐

  1. Android Studio:Grade 全局参数定义

    Grade 全局参数定义 实际开发中设置公共的编译依赖参数等. 方法一: 在项目外层的build.gradle文件中定义,格式如下: 文件名:build.gradle ext { sourceComp ...

  2. Windows 10 应用创建模糊背景窗口的三种方法

    原文 Windows 10 应用创建模糊背景窗口的三种方法 现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了.iOS/Mac 和 Windo ...

  3. C#中HttpWebRequest与HttpWebResponse的使用方法

    关键字:C# HttpWebRequest HttpWebResponse HTTP GET POST 请求 这个类是专门为HTTP的GET和POST请求写的,解决了编码,证书,自动带Cookie等问 ...

  4. 基于高德地图的描点操作,监听地图缩放,展示合理数量的marker

    原文:基于高德地图的描点操作,监听地图缩放,展示合理数量的marker 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lx583274568/art ...

  5. OpenGL(四) 左右手坐标系及基本坐标变换

    左手坐标系.右手坐标系.笛卡尔坐标系 左手坐标系:伸开左手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向. 右手坐标系:伸开右手,大拇指指向X轴正方向,食指指向Y轴正方向,其他 ...

  6. ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 新建项目(Windows) - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新建项目(Windows) 对于任何语言和框架,都 ...

  7. sql server 2016 JSON 学习笔记

    虽然现在win服务器已经几乎不用了,但是网上看到2016开始原生支持json 还是想试试 建立一个表  id int , json varchar(2000) json字段中输入数据 {"r ...

  8. LAN公布java web项目的方法的外侧

    1.进入路由器设置页面:http://192.168.1.1 2.找到"转发规则"选项,我现在的路由器tp-link,不同型号tp-link"转发规则"选项位置 ...

  9. C# 操作XML文档 使用XmlDocument类方法

    W3C制定了XML DOM标准.很多编程语言中多提供了支持W3C XML DOM标准的API.我在之前的文章中介绍过如何使用Javascript对XML文档进行加载与查询.在本文中,我来介绍一下.Ne ...

  10. Goutte 获取http response

    $client = new Goutte\Client(); $crawler = $client->request('GET', 'http://symfony.com'); 获取http 响 ...