前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习之高级特性

Python学习之高级特性

作者头像
py3study
发布2020-01-19 11:50:33
2650
发布2020-01-19 11:50:33
举报
文章被收录于专栏:python3python3

切片

在Python基础篇里,我们知道Python的可序列对象可以通过索引号(下标)来引用对象元素,索引号可以由0开始从左向右依次获取,可以从-1开始由右向左获取。这种方法可以帮助我们依次获取我们想要的元素。而切片可以帮助我们获取被切片元素的副本。

可序列对象切片时所需要的参数[start_index:stop_index:step]

start_index:切片的起始位置

stop_index:切片的结束为止(不包括)

step:步长,可选参数。默认值是1,但不能为0.表示依次递增。

操作

解释

输出

print(testList)

打印测试列表

[1, 2, 3, 4, 5, 6, 7, 8, 9]

print(testList[:])

输出列表中所有元素

[1, 2, 3, 4, 5, 6, 7, 8, 9]

print(testList[1:7:2])

从第二个开始,到第8个元素(不包含),每次间隔2个元素

[2,4,6]

print(testList[:5])

从第一个开始,到第6个(不包含),默认间隔1个元素

[1,2,3,4,5]

print(testList[-5:])

从右往左第五个开始至最后一个元素结束,默认间隔1个元素

[5,6,7,8,9]

print(testList[::2])

从第一个开始,到最后一个结束,每次间隔2个元素

[1,3,5,7,9]

print(testList[::-1])

从第一个开始,至最后一个结束,倒序间隔一个元素

[9, 8, 7, 6, 5, 4, 3, 2, 1]

testList[1:2]=['a'] print(testList)

从第2个元素开始,第三个元素结束(不包含),插入并替换该区间元素

[1, 'a', 3, 4, 5, 6, 7, 8, 9]

del testList[1]print(testList)

删除第二个元素,请注意,这时只是从原来对象中的副本中删除后重新获取一个新的引用对象。

[1, 3, 4, 5, 6, 7, 8, 9]

del testList[1::2]

从第二个元素开始删除对象元素,至最后一个元素结束,每次间隔2个

[1, 3, 5, 7, 9]

迭代

在开发语言中,遍历获取可序列对象我们称之为迭代。Python中,不仅可以像其他语言一样迭代可序列对象还可以迭代任意可序列化对象。例如 字典,字符串,元祖

案例

解释

输出

testList=[1,2,3]for i in testList: print(i)

迭代列表

1  2  3

testStr='hello'for i in testStr: print(i)

迭代字符串

h e l l o

testDic={'name':'zhangsan','age':18}for i in testDic: print(i)

循环字典,默认输出key

name age

判断一个元素是否可以被迭代

在Python中可以通过collections模块的Iterable类型判断元素是否可以被迭代,当元素允许被迭代时返回True,反之返回False

代码语言:javascript
复制
from collections import Iterable

案例

解释

输出

a=isinstance('abc',Iterable)print(a)

判断字符串(python中'a'也将作为字符串"a")使用

True

testList=[1,2,3]a=isinstance(testList,Iterable)print(a)

判断列表

True

testDict={'name':'zhangsan','age':18}a=isinstance(testDict,Iterable)print(a)

判断字典

True

testTuple=(1,2,3)a=isinstance(testTuple,Iterable)print(a)

判断元祖

True

testInt=123a=isinstance(testInt,Iterable)print(a)

判断数值

False

列表生成式

Python中列表生成式不仅可以迭代输出对象元素,还可以简化我们的代码。

for循环

列表生成式

l=[]for x in range(1,11): l.append(x*x)print(l)

n=[x*x for x in range(1,11)]print(n)

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表生成式与if条件一起使用

for 循环

列表生成式

输出

l=[1,2,4,5,6,7,8,9]k=[]for i in l: if i %2==0: k.append(i)print(k)

l=[1,2,4,5,6,7,8,9]n=[x for x in l if x%2==0 ]print(n)

[2,4,6,8]

列表生成式与字典一起使用

for循环

列表生成式

输出

testDict={'name':'zhangsan','age':18}for n in testDict: print(n+'=:'+str(testDict[n]))

testDict={'name':'zhangsan','age':18}b=[ k +'=' +str(v) for k ,v in testDict.items()]print(b)

name=:zhangsanage=:18和['name=zhangsan', 'age=18']

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 切片
  • 迭代
  • 列表生成式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档