python学习之列表语法
1.列表
1 list.append(obj)
在列表末尾添加新的对象
2 list.count(obj)
统计某个元素在列表中出现的次数
3 list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj)
将对象插入列表
6 list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj)
移除列表中某个值的第一个匹配项
8 list.reverse()
反向列表中元素
9 list.sort([func])
对原列表进行排序
python里列表相当于其他程序中的数组
1.1 取值
>>> name=["zhangsan","lisi","wangwu","zhaoliu",190,33]
>>> name[0]
'zhangsan' #取第一个元素
>>> name[1]
'lisi'
>>> name[-1]
33 #取最后一个元素
>>> name[-2]
190 1.2 取部分值
>>> name[0:2]
['zhangsan', 'lisi']
>>> name[-5:-1] #只能从左到右取值
['lisi', 'wangwu', 'zhaoliu', 190]
>>> name[-5:] #取到最后一个值
['lisi', 'wangwu', 'zhaoliu', 190, 33]
1.3 增、删、改、查列表值
>>> name.insert(0,"Jasper") #在指定位置插入数据使用insert
>>> name
['Jasper', 'zhangsan', 'lisi', 'wangwu', 'zhaoliu', 190, 33]
>>> name.append("Desperado") #在最后面增加数据使用append
>>> name
['Jasper', 'zhangsan', 'lisi', 'wangwu', 'zhaoliu', 190, 33, 'Desperado']
>>> name.remove(190) #删数据,remove是删除元素的值,与pop\del方法不同
>>> name
['Jasper', 'zhangsan', 'lisi', 'wangwu', 'zhaoliu', 33, 'Desperado']
>>> name.pop(0) #pop删除元素
'Jasper'
>>> name
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 33, 'Desperado']
>>> del name[-1] #del删除元素,del可以删除多个连接的元素del name[0:3],删除所有 del name
>>> name
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 33]
>>> name[-1]=10000 #改数据指定更新数据的位置及更改的新数据 name[3]="wangwu(admin)"
>>> name
['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 10000]
1.4 步长
name=["zhangsan","lisi","wangwu","zhaoliu","xiaosan","xiaosi"]
print(name[0:-1:2]) #第一个:是打印左边的元素第二个:是右边的元素,2为打印的元素步长,也可以[::2],默认步长 是1
实际中列表是有很多元素的
如我想知道在一个列表中有没有Jasper这个元素,使用in
print("Jasper" in name)
False
1.5 统计列表元素个数
name=[11,23,54,32,23,23,10,64,64,11,11,11,32,11]
print(name.count(11)) 示例:统计Jasper在列表中的次数
name=["zhangsan","lisi","wangwu","zhaoliu","xiaosan","xiaosi","Jasper"]
if "Jasper" in name:
co=name.count("Jasper")
print("%s Jasper is in name"%co)
else:
print("wu")
1.6 index从列表中找出某个值第一个匹配项的索引位置
name=[11,23,54,32,23,23,10,64,64,11,11,11,32,11]
print(name.index(64)) 示例:统计Jasper出现的次数通过index找出匹配项的位置修改元素
name=["Jasper","lisi","wangwu","zhaoliu","xiaosan","xiaosi","Jasper"]
for i in range(name.count("Jasper")): #使用循环统计Jasper出现的次数
ind=name.index("Jasper") #使用index索引第一次出现的位置
name[ind]=123 #修改索引出元素
print(name) 运行结果:
[123, 'lisi', 'wangwu', 'zhaoliu', 'xiaosan', 'xiaosi', 123] 1.7 合并两个列表元素
name=["Jasper","lisi","wangwu","zhaoliu","xiaosan","xiaosi","Jasper"]
name2=[1,2,3,"Jasper"]
name.extend(name2)
print(name)
运行结果:
['Jasper', 'lisi', 'wangwu', 'zhaoliu', 'xiaosan', 'xiaosi', 'Jasper', 1, 2, 3, 'Jasper'] #追加到列表后面 1.8 反转列表元素 reverse
user=["阿大","阿二","阿三","阿四","小五","小六","小七"]
user.reverse()
print(user)
运行结果:
['小七', '小六', '小五', '阿四', '阿三', '阿二', '阿大'] 1.9 排序 sort
user=["阿大","阿二","阿三","阿四","小五","小六","小七"]
user.sort()
print(user) num=[3,2,3,4,5,6,7,3]
num.sort()
print(num) 运行结果:
['小七', '小五', '小六', '阿三', '阿二', '阿四', '阿大']
[2, 3, 3, 3, 4, 5, 6, 7]
#在python3的列表元素中字符串和数据不可以混合排序,python2可以
1.10 复制列表元素copy
user=["阿大","阿二","阿三","阿四","小五","小六","小七"] user3=user.copy()
user3[0]="456"
print(user3)
print(user)
运行结果:
['456', '阿二', '阿三', '阿四', '小五', '小六', '小七']
['阿大', '阿二', '阿三', '阿四', '小五', '小六', '小七']
#使用copy复制列表与原列表没有关系,使用变量会修改原变量
user=["阿大","阿二","阿三","阿四","小五","小六","小七"] user2=user
user2[0]="123"
print(user2)
print(user)
运行结果:
['123', '阿二', '阿三', '阿四', '小五', '小六', '小七']
['123', '阿二', '阿三', '阿四', '小五', '小六', '小七']
1.11 列表嵌套列表复制修改
user=["阿大","阿二","阿三",[1,2,3,4,5],"阿四","小五","小六","小七"]
user[0]="00000"
user2=user.copy()
user2[3][1]="abcdefg" #修改元素3(是个列表)中第二个元素
print("user=",user)
print("user2=",user2)
运行结果:
user= ['00000', '阿二', '阿三', [1, 'abcdefg', 3, 4, 5], '阿四', '小五', '小六', '小七']
user2= ['00000', '阿二', '阿三', [1, 'abcdefg', 3, 4, 5], '阿四', '小五', '小六', '小七']
#copy只会复制列表的第一层,列表里的列表不会copy,可以看成是一个软链接,这里修改user2同时user也修改了
如果想把列表里的列表一同copy过去可以使用copy模块里的deepcopy(深度copy)
import copy #导入copy模块
user=["阿大","阿二","阿三",[1,2,3,4,5],"阿四","小五","小六","小七"]
user[0]="00000"
user2=user.copy()
user2[3][1]="abcdefg"
print("user=",user)
print("user2=",user2) user3=copy.deepcopy(user) #deepcopy user列表到user3新列表名
user3[3][2]=11111111111 #修改user3中列表中的列表
print("user3=",user3)
运行结果:
user= ['00000', '阿二', '阿三', [1, 'abcdefg', 3, 4, 5], '阿四', '小五', '小六', '小七']
user2= ['00000', '阿二', '阿三', [1, 'abcdefg', 3, 4, 5], '阿四', '小五', '小六', '小七']
user3= ['00000', '阿二', '阿三', [1, 'abcdefg', 11111111111, 4, 5], '阿四', '小五', '小六', '小七']
#user3修改了列表中的列表,但user里并没有改变,因为使用deepcopy是完全copy整个list
1.12给列表前加标号
a=['huqiang','desperado','jack']
for a,i in enumerate(a):
print(a,i)
运行结果:
0 huqiang
1 desperado
2 jack
默认enumerate是从0开始显示,可以指从编号几开始
a=['huqiang','desperado','jack']
for a,i in enumerate(a,1): #加一个逗号及要初始显示的编号
print(a,i)
运行结果:
1 huqiang
2 desperado
3 jack
#split字符转为列表
a='a+b+c+d'
print(a.split('+')) #tuple列表转为元组
name=['lisi','46']
print(tuple(name))
python学习之列表语法的更多相关文章
- Python学习02 列表 List
Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...
- python学习笔记——列表生成式与生成器
1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...
- Python学习3——列表和元组
一.通用序列操作——索引.切片.相加.相乘.成员资格检查 1.索引,正序从0开始为第一个元素,逆序从-1开始,-1为最后一个元素 >>> greeting[0] 'h' >&g ...
- python学习之列表的定义以及增删改查
列表定义: >>> name['lily','lucy','tom'] >>> nums = [11,22,33,'100','lily'] #python中的列表 ...
- Python学习---django模板语法180122
django模板语法[Template] 模版的组成: HTML代码+逻辑控制代码 <h1> {{ user_name }} </h1> 逻辑控制代码的组成: 1.变量: ...
- python学习第一天-语法学习
1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字,来自 ...
- python学习之基础语法
一.缩进 学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断.python 最具特色的就是用缩进来写模块. 缩进的空白数量是可变的, ...
- python学习-字符串 列表 元祖
目录 Python翻转字符串(reverse string) 简单的步长为-1, 即字符串的翻转(常用) 递归反转 借用列表,使用reverse()方法 字符串常用操作 index split 切片 ...
- Python学习笔记——基础语法篇
一.Python初识(IDE环境及基本语法,Spyder快捷方式) Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,没有编译过程,可移植,可嵌入,可扩展. IDE 1.检查Pyth ...
随机推荐
- ajax实现文件上传
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- jdbc中java与mysql数据类型的映射
注:这种类型匹配不是强制性标准,特定的JDBC厂商可能会改变这种类型匹配.例如Oracle中的DATE类型是包含时分秒,而java.sql.Date仅仅支持年月日.
- php获取真实IP地址
function user_realip() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif (g ...
- 4_STL设计理念_算法
STL算法,容器,迭代器的设计理念1.STL容器通过 类模板 技术,实现 数据类型 和 容器模型的分离:2.迭代器技术 实现了 遍历和操作容器的统一方法3.STL算法设计理念:通过预定义的函数对象和函 ...
- BizTalk开发系列(三十三)BizTalk之Excel终极解决方案
Excel作为优秀的客户端数据处理程序得到了广泛的应用. 由于其简单又强大的功能在很多公司或个人的数据处理中占用非常重要的位置. 而BizTalk作为微软的SOA主打产品虽然免费提供了很多Adapte ...
- Otsu algorithm
一.介绍 OTSU算法也称最大类间差法,有时也称之为大津算法,被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用.它是按图像的灰度特性,将 ...
- EmguCV 一些结构
一.MCvTermCriteria epsilon Epsilon max_iter Maximum iteration type CV_TERMCRIT value 二.MCvScalar vo T ...
- Color Space: Ycc
在进行图像扫描时,有一种重要的扫描输入设备PhotoCd,由于PhotoCd在存储图像的时候要经过一种模式压缩,所以PhotoCd采用了Ycc颜色空间,此空间将亮度作由它的主要组件,具有两个单独的颜色 ...
- scp使用加密算法报错unknown cipher type
为了提高scp的传输速度指定了scp的加密算法为arcfour $ scp -c arcfour localFile userName@remoteIP:remoteFile 得到报错unknown ...
- SQL Server执行计划的理解【转】
要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看 ...