Python入门教程之高级特性

栏目: Python · 发布时间: 6年前

内容简介:在Python基础篇里,我们知道Python的可序列对象可以通过索引号(下标)来引用对象元素,索引号可以由0开始从左向右依次获取,可以从-1开始由右向左获取。这种方法可以帮助我们依次获取我们想要的元素。而切片可以帮助我们获取被切片元素的副本。可序列对象切片时所需要的参数[start_index:stop_index:step]start_index:切片的起始位置

切片

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

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

start_index:切片的起始位置

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

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

假设testList=[ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9]
操作
解释 输出
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

from collections import Iterable
案例 解释 输出
a= isinstance( 'abc'

,Iterable)

print(a)

判断字符串(python中'a'也将作为字符串"a")使用 True
testList=[ 1 , 2 ,

3]

isinstance(testList

,Iterable)

print(a)

判断列表 True
testDict={ 'name': 'zhangsan' , 'age':

18}

isinstance(testDict

,Iterable)

print(a)

判断字典 True
testTuple=( 1 , 2 ,

3)

isinstance(testTuple

,Iterable)

print(a)

判断元祖 True
testInt=

123

isinstance(testInt

,Iterable)

print(a)

判断数值 False

列表生成式

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

例如 我们需要得到10以内n*n
列表生成式
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条件一起使用

仅输出能被2整除的数
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=:zhangsan
age=:18
和
['name=zhangsan', 'age=18']

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-10/154610.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Developer's Guide to Social Programming

Developer's Guide to Social Programming

Mark D. Hawker / Addison-Wesley Professional / 2010-8-25 / USD 39.99

In The Developer's Guide to Social Programming, Mark Hawker shows developers how to build applications that integrate with the major social networking sites. Unlike competitive books that focus on a s......一起来看看 《Developer's Guide to Social Programming》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具