初学者python笔记(列表的食用方法)
本篇是关于可迭代对象中的列表一些相关使用方法的记录。
可迭代对象简单描述:可以被for循环执行的对象(字符串,列表,元组,字典…)
- input()方法接收的其实只是字符串
a = input(“请输入:”) #输入的是一个字符串类型,
b = int(input(“请输入:”)) #将输入的函数转化为数字类型
value = "5+9" #是一个字符串
v1,v2 = value.split('+') #将'+'作为分隔符,前半部分赋值给v1,后半部分赋值给v2
v1 = int(v1)
v2 = int(v2)
v = v1+v2 #int()后就可以做运算了
print(v)
因为v1和v2都被转化成数字型了,所有v结果自然是:14
- 列表(list类)(特征:中括号,可修改),取值方法
li = [1,12,9,"age",["串串香",["19",10],"今麦郎"],"alex",True] #通过list类创建的一个对象liprint(li) #列表可以作为一个整体打印出来
print(li[2]) #通过索引2(即下标,从0开始)来取元素9print('=========================================')
# 通过切片来取值,取出的结果仍然是个列表
print(li[3:5]) #通过切片取3到5的元素,范围是大于等于3,小于5,所以只有两个元素
print(li[1:-1]) # -1是指最后一个元素,这里表示的范围是大于等于1小于最后一个(不包含最后一个)print('=========================================')
#也支持for和while循环取值,即一个一个全部输出
for item in li:print(item)
结果是:
- 列表可以修改
li = [1,12,9,"age",["串串香",["19",10],"今麦郎"],"alex",True]
li[1] = [11,22,33,44] #通过下标修改
li[1:3] = [120,90] #通过切片修改
print(li)
#删除某下标为1的元素,即删除12:
del li[1]
print(li)
结果是:
[1, 120, 90, ‘age’, [‘串串香’, [‘19’, 10], ‘今麦郎’], ‘alex’, True]
[1, 90, ‘age’, [‘串串香’, [‘19’, 10], ‘今麦郎’], ‘alex’, True]
- 列表类似于C语言中的数组,并且可以多维
li = [1,12,9,"age",["是正文",["19",10],"庞麦郎"],"alex",True]
v = li[4][1][0][1] #类似四维数组
print(v)
答案是:9
- 字符串转列表时,会把每一个元素当成列表中的元素
s = "ajfskgahgkashgjhufywuyrlioqgfnjd"
new_li = list(s)
print(new_li)
结果是:
[‘a’, ‘j’, ‘f’, ‘s’, ‘k’, ‘g’, ‘a’, ‘h’, ‘g’, ‘k’, ‘a’, ‘s’, ‘h’, ‘g’, ‘j’, ‘h’, ‘u’, ‘f’, ‘y’, ‘w’, ‘u’, ‘y’, ‘r’, ‘l’, ‘i’, ‘o’, ‘q’, ‘g’, ‘f’, ‘n’, ‘j’, ‘d’]
- 将列表拼接成一个字符串
li = ["123","alex"]
v = "".join(li)
print(v)
结果是:123alex
- append() 方法与 extend() 方法
一个是将传入的数据当一个整体加入到列表中,一个是将传入的对象当成多个对象加入到列表中
li = [11,22,33,44]
li.append(5) #在li的后面追加一个5
li.append([66,77,"age"]) #也可以列表,元组或字典
print(li)
li.clear() #清空列表
li.extend([66,77,"age"])
li.extend("不得了") #则会将"不得了"分开成3个元素加入到列表中
print(li)
结果是:
[11, 22, 33, 44, 5, [66, 77, ‘age’]]
[66, 77, ‘age’, ‘不’, ‘得’, ‘了’]
Ps:不过在python3中,想要加入多个元素好像只能弄成列表,元组或者字典,ppend()和extend()不能直接传入多个值
- 拷贝与计算次数
li = ["alex",True,43,22,54,"age",22]
v = li.copy() #拷贝一份到v
print(v)
v2 = li.count(22) #计算某元素出现的次数
print(v2)
结果是:
[‘alex’, True, 43, 22, 54, ‘age’, 22]
2
- index() 索引与 insert() 插入
li = [11,22,33,22,44]
v = li.index(22) #从前往后找,第一个与22匹配的位置
print(v)
li.insert(0,99) #在指定位置0插入元素99,即整个列表的前端
print(li)
结果是:
1
[99, 11, 22, 33, 22, 44]
- 删除之pop()与remove()
pop删除为某个值并获取删除的值到某个变量(指定索引,默认为最后一个)
remove删除为从左边开始数删除遇到的第一个指定元素,返回值是None
li = [11,22,33,22,44]
v = li.pop()
print(v)
li.remove(22)
print(li)
v1 = li.remove(22)
print(v1)
结果是:
44
[11, 33, 22]
None
- 列表的翻转、排序与替换
列表其实没有replace()这个方法,如果需要替换的话,必须先转换成字符串才可以实现replace()
li_1 = [11,44,22,33,22]
li_1.reverse() #翻转列表中的元素
print(li_1)
li_1.sort() #将列表元素排序,默认从小到大排
print(li_1)
li_1.sort(reverse=True) #从大到小排
print(li_1)li_2 = [55,22,00,'name?','age?',520]
st = str(li_2) #用str()将列表转换成字符串类型
v = st.replace("name?","alex") #用'what?'替换元素'alex'
print(v)
结果是:
[22, 33, 22, 44, 11]
[11, 22, 22, 33, 44]
[44, 33, 22, 22, 11]
[55, 22, 0, ‘alex’, ‘age?’, 520]
Ps:其实这样的替换还不够好,它只能替换一个元素,但我们可以这样:
li=[5,'有','幸',1,'生','you','你']
dic={5:"我",1:"一","you":"有"} #字典+键值对
li=[dic[i] if i in dic else i for i in li]
print(li)
结果是:
[‘我’, ‘有’, ‘幸’, ‘一’, ‘生’, ‘有’, ‘你’]
这里是利用了键值对来替换多个元素,这种方法真的非常好用,
第三行代码的简单解释:
#i是dic字典中的key(键),即 5,1,'you',dic[i]则是字典中的value(值)
for i in li:if i in dic:li[i] = dic[i]else:li[i] = i
#如果key是列表里的元素,就将dic[i]放进去,即键值对中的值
#否则就遍历另外的key,再看是否满足条件
这是属于三元表达式的内容,详情请参见文章:
初学者python笔记(迭代器、生成器、三元表达式、列表解析、send()与yield())
12、最大值、最小值、长度函数
- len(list): 统计列表内的元素个数
- max(list) :取列表元素中的最大值
- min(list) :取列表元素中的最小值
13、列表的其他方法
- list.count(obj):返回obj元素在列表中出现的次数
- list.sort(cmp=None, key=None, reverse=False):对原列表进行排序,如果指定参数,则使用比较函数
- list.clear():清空列表
也可以使用del list[:]
与li = []
来实现清空列表 - b = a.copy():复制列表,此处是将a列表复制一份后赋值给b
初学者python笔记(列表的食用方法)相关推荐
- 初学者python笔记(内置函数_2)
这篇初学者笔记是接着上一篇初学者python笔记(内置函数_1)的.同样都是介绍Python中那些常用内置函数的. max()和min()的高级用法 我们都知道,max():取最大值,min():取最 ...
- 初学者python笔记(类的继承与多态---详解)
文章目录 一.类的组合与继承的区别 二.类的继承 1.继承的功能分析 2.类的继承之派生.接口继承 3.用接口模块abc来实现接口继承 4.使用接口继承的好处 5.类的继承顺序 6.在子类中调用父类的 ...
- 初学者python笔记(静态属性、类方法、静态方法、类的组合)
文章目录 类的三大方法 1.静态属性 2.类方法.静态方法 3.三大方法总结 类的组合 1.用法分析 2.面试案例分析 本篇文章是上一篇:初学者python笔记(面向对象编程.类与对象)的后续篇,是关 ...
- 初学者python笔记(装饰器后篇:登陆验证)
装饰器有非常强大的功能,可以不修改函数源代码和调用方式,就给函数加上了对应想要的功能,简直就是 修饰函数的利器. 上一篇文章:初学者python笔记(装饰器.高阶函数.闭包)已经非常详细的剖析了装饰器 ...
- 初学者python笔记(map()函数、reduce()函数、filter()函数、匿名函数)
文章目录 一.匿名函数 二.map()函数 三.reduce()函数 四.filter()函数 五.三大函数总结 本篇文章内容有Python中的匿名函数和map()函数.reduce()函数.filt ...
- python中列表的sort方法_python中列表的sort方法使用详解
内容简介:python中列表的sort方法使用详解 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的. 排序,数字.字符 ...
- 初学者python笔记(装饰器、高阶函数、闭包)
一个函数被定义完成后,甚至程序发布后,后期可能需要添加某些功能,但是我们不可能每次都去修改原函数的代码,这时候装饰器就可以上场了,本篇文章将会用一个个可实现的代码,由浅入深.循序渐进得阐述装饰器的强大 ...
- python实现列表的排序方法
本篇文章里小编给大家分享了关于python实现列表的排序方法以及相关知识点,有兴趣的朋友们可以学习下. 这次代码主要是实现列表的排序,使用sort函数实现,sort函数是对列表中的元素按照特定顺序进行 ...
- python的列表的remove()方法、判断if xxx in xx条件比较耗时问题
最近在coding的时候,写的代码中只有一层循环,却很耗时,不明觉厉.不知道是哪里出了问题,于是我就在每一行代码中都打印一下耗时,最终发现了这个罪魁祸首.这里我只说明两个我遇到耗时的场景,当然还有很多 ...
最新文章
- 绝了!“修仙模式”学编程是什么体验?
- OpenCV学习之Mat::at()理解
- 018 jquery中的事件
- excel 平滑滚动_Excel怎么学 | 图表实战,销售数据的不同表达方式
- 债券指数(Bond Index)
- 第二次冲刺——第7天
- html 手写字效果,canvas画布实现手写签名效果的示例代码
- Linux软链接的使用
- php环行队列实现,java数组实现队列及环形队列实现过程解析
- Toolkit.getDefaultToolkit().getScreenSize();获取显示器屏幕大小并使JFrame窗口居中显示
- 服务器导流板的作用,前保险杠下导流板的作用是什么?
- 图像的峰值信噪比(PSNR)的计算方法
- format mla_mlaformat是什么
- 简七32堂极简理财课——模块五:基金与股票,年化收益20%+
- 原生js的e.target.closest()方法
- 虚拟机开启系统蓝屏报错:“终止代码:SYSTEM_SERVICE_ECXEPTION“
- 正确刷牙的健康小常识
- ROS routeros mikrotik路由器CVE-2018-14847漏洞
- redis数据类型总结
- 简练软考知识点整理-估算活动持续时间
热门文章
- JAVA绘制图片原理_java开发_图片截取工具实现原理
- Mysql drop table 原理_mysql事务的实现原理
- 配置服务器文件,服务器配置文件
- 华为荣耀7能改成Linux吗,华为荣耀7电池怎么样?华为荣耀7可以更换电池吗?
- 微信找不到nfc功能_手机的NFC如何使用?3分钟教会你!
- mysql asp 字段部分内容_sql 修改、更新、替换 某个字段的部分内容(转载)
- java exe 路径_Java程序获取执行自己的java.exe路径
- oracle互换2条记录,ORACLE中确定表里哪些行是彼此互换的
- 档案电子封装包Java类,email: Android电子邮件库(基于JavaMail封装)
- php smarty thinkphp,用新版的thinkphp3.2.3和新版的smarty3.1.29