零基础入门Python3-高级特性详解(1)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了零基础入门Python3-高级特性详解(1),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3939字,纯文字阅读大概需要6分钟。
内容图文
我们从字面意思理解高级特性,就是高级的特有的性质。(不是废话吗!)
高级特性,有切片、迭代、列表生成器、生成器、迭代器(我是从廖雪峰老师的博客抄袭来的,主要是我感觉廖老师总结的很到位!)
1、切片
切片是针对于 list 、tuple、str 进行操作,“切” 出来的是对应的类型,比如 list 的切片结果还是一个 list 。
[ list ] [ x : y ]
( tuple ) [ x : y ]
' str ' [ x : y ]
# x 代表的是起始位置,y 代表的是终止位置,但是不包含y本身的那个元素
# 实例1
L1=[1,2,3,4,5,6] #list的切片
L2=(1,2,3,4,5,6) #tuple的切片
L3="123456" #字符串的切片
print('list的切片:')
print(L1[0:5])
print('tuple的切片:')
print(L2[0:5])
print('str的切片:')
print(L3[0:5])
>>> list的切片:
[1, 2, 3, 4, 5]
tuple的切片:
(1, 2, 3, 4, 5)
str的切片:
12345
# 如果[0:5]切片的起始位置为0,那么就可以把0省略,表达成[:5]
print(L1[:5])
>>> [1, 2, 3, 4, 5]
# 实例2,取特定位置的切片
L4=('a','b','c','d','e','f')
print(type(L4[1:5]),L4[1:5])
>>> <class 'tuple'> ('b', 'c', 'd', 'e')
# 取L4 tuple的第一位到第五位的元素,但是不包含第五位的元素
# 实例2,这个实例很好的解释了特定区间的元素
a1=[i for i in range(21)]
print(a1[:])
print(a1[::2])
print(a1[1::2])
print(a1[:11:2])
print(a1[1:11:2])
>>>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
[0, 2, 4, 6, 8, 10]
[1, 3, 5, 7, 9]
# [ : ] 中,没有给起始、和终止的位置,所以,python中默认取出所有的元素,也就相当于复制。
# [ : : 2] 第二个冒号代表的是隔2取值。
2、迭代
如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。(抄来的,廖雪峰的博客)
# 实例1,list 的迭代
S1=[1,2,3,4,5,6]
for i in S1:
print(i,end=" ")
>>> 1 2 3 4 5 6
# 实例2,tuple的迭代
S2=('a','b','c','d','e','f')
for j in S2:
print(j,end=' ')
>>> a b c d e f
# 实例3,str的迭代
S3='Hello Python'
for k in S3:
print(k,end=' ')
>>> H e l l o P y t h o n
# 实例4,dict 的迭代
S4={'a':1,'b':2,'c':3,'d':4,'e':5}
for m in S4:
print(m ,end=' ')
>>> a b c d e
# 实例5,dict 键和值的迭代
S5={'a':1,'b':2,'c':3,'d':4,'e':5}
for a,b in S5.items():
print(a,"=",b,end=" ")
>>> a = 1 b = 2 c = 3 d = 4 e = 5
# 如果要迭代出dict的键值,需要在变量后调用items()函数。
3、列表生成器
如果我们要生成一个列表,比如[0,1,2,3,4,5,6,7,8,9,10],可以使用list(range(11))
# 实例1
print(list(range(11)))
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但是我们想要生成1x1,2x2,3x3,4x4......的一个列表,我们同样可以利用for 循环实现:
# 实例2
a1=[]
for i in range(11):
a1.append(i*i)
print(a1)
>>> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
你有没有感到繁琐?python为大家提供了一个列表生成器,直接一句话就可以生成列表,即便很复杂的列表也是可以的。
[i for i in range(11)]
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 这个一个生成0-10列表的表达式。
# 首先 for i in range(11),生成0-10的数字
# 然后 赋值给 i
#接着加入到列表中 [ ]
# 实例1,生成一个1x1,2x2,3x3,....的列表
a=[i*i for i in range(11)]
print(type(a),a)
>>> <class 'list'> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 输出的类型是 list ,结果正确
# 实例2,输出0,10所有的偶数
print([j for j in range(11) if j % 2==0])
>>> [0, 2, 4, 6, 8, 10]
# range 语句的右边是对range函数进行判断。符合判断语句的,输出,不符合的不输出。
# 实例3,输出0,10 所有的偶数,这些偶数中有 4 ,则输出4*4 的结果
print([j*j if j==4 else j for j in range(11) if j % 2==0])
>>> [0, 2, 16, 6, 8, 10]
# for 语句的左边的 j*j if j==4 else j 代表的是,判断是否符合条件,如果符合,则执行判断语句的左边 j * j 。不符合,执行else 的右边 j 。
# 所以使用python的列表生成器,既能达到想要的结果,又方便快捷。
# 练习题,把列表L = ['Hello', 'World', 18, 'Apple', None] 中的字符串改为小写。
L = ['Hello', 'World', 18, 'Apple', None]
print([i.lower() if isinstance(i,str) else i for i in L])
>>> ['hello', 'world', 18, 'apple', None]
# Python lower() 方法转换字符串中所有大写字符为小写。
关注公众号,了解更多!
内容总结
以上是互联网集市为您收集整理的零基础入门Python3-高级特性详解(1)全部内容,希望文章能够帮你解决零基础入门Python3-高级特性详解(1)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。