python学习之路--python基础之列表操作
本文主要介绍下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基础之列表操作的更多相关文章
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- Python学习之路-Day2-Python基础3
Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
- PYTHON学习之路_PYTHON基础(6)
学习内容: Python模块介绍 1.time &datetime模块 2.random 3.shutil 4.shelve 5.xml处理 6.configparser 7.hashlib ...
- PYTHON学习之路_PYTHON基础(3)
学习内容: 1.Python字典 2.Python集合 3.Python字符编码 4.Python文件操作 5.Python实例 一.Python字典 1.定义: dic1={'name':'alex ...
- PYTHON学习之路_PYTHON基础(2)
学习内容: 1.Python数据类型与变量 2.Python字符串 3.Python列表 4.Python while循环 5.Python字典 6.Python实例 一.Python数据类型与变量 ...
- PYTHON学习之路_PYTHON基础(1)
学习内容: 1.Python介绍 2.Python程序初接触和变量 3.Python用户交互 4.Python数据类型 5.Python循环if...(elif)...else 6.Python循环w ...
- Python学习之路1 - 基础入门
本文内容 Python介绍 安装Python解释器 输出 变量 输入 条件判断语句 循环语句 模块讲解 三元运算 字符串和二进制的相互转化 本系列文章使用的Python版本为3.6.2 使用开发工具为 ...
- PYTHON学习之路_PYTHON基础(10)
学习内容: Python进程与线程 1.线程及线程类 2.线程守护 3.线程等待 4.线程锁 5.信号量 6.timer用法 7.队列 8.事件驱动 9.生产者消费者模型 10.进程及进程同步 11. ...
随机推荐
- 怎么会float交换器int
最近突然想知道编译器整数浮球开关是如何实现的,现在很多信息,但遗憾的是甚至没有这方面的记录,所以我决定实现自己的简单的整数浮点转 随着float开启int为例 double转int类似 在做强转之前 ...
- 【Android工具类】用户输入非法内容时的震动与动画提示——EditTextShakeHelper工具类介绍
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 当用户在EditText中输入为空或者是数据异常的时候,我们能够使用Toast来提醒用户,除此之外,我们还能 ...
- wpf中的倒影效果实现
原文:wpf中的倒影效果实现 <TextBox Name="txt" FontSize="30" ...
- AdaBoost算法原理及OpenCV实例
备注:OpenCV版本 2.4.10 在数据的挖掘和分析中,最基本和首要的任务是对数据进行分类,解决这个问题的常用方法是机器学习技术.通过使用已知实例集合中所有样本的属性值作为机器学习算法的训练集,导 ...
- OpenCV中基于HOG特征的行人检测
目前基于机器学习方法的行人检测的主流特征描述子之一是HOG(Histogram of Oriented Gradient, 方向梯度直方图).HOG特征是用于目标检测的特征描述子,它通过计算和统计图像 ...
- wpf 判断鼠标在一段时间内是否移动
原文:wpf 判断鼠标在一段时间内是否移动 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/config_man/article/details/74 ...
- LeapMotion Demo2
原文:LeapMotion Demo2 官方doc有四个手势,最近尝试实现对握拳的识别,并能在我的程序界面上体现出来. 调试过程较为繁琐,幸好最终效果还差强人意! 首先看看我的效果图: ...
- 搜索服务器Elasticsearch
基本 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Ap ...
- MVC基架生成的Index视图
@model IEnumerable<MyMusicStore.Models.Album> @{ ViewBag.Title = "Index"; } < ...
- SDP开发平台试用版上线!提供源码!!!!
SDP开发平台提供试用版!! SDP软件快速开发平台是一套面向对象的应用软件快速开发平台. 1.SDP 设计端--页面设计 通过简单的拖拉控件,或者快速生成控件,可以在几分钟快速制作一个页面:如图 通 ...