一篇文章带你学习Python3的高级特性(1)
作者:FUXI_Willard 发布时间:2021-09-24 04:39:01
1.切片
# 切片:取list或tuple的部分元素
nameList = ["Willard","ChenJD","ChenBao","ChenXiaoBao","hackerLuo"]
print("nameList的内容为:",nameList)
print("------------------------------------------------------------------------------")
# 传统方法取nameList前三个元素
print("nameList前三个元素:",[nameList[0],nameList[1],nameList[2]])
print("------------------------------------------------------------------------------")
# 使用切片取前三个元素,注:切片也是左闭右开
print("使用切片操作取nameList前三个元素:",nameList[0:3])
print("使用切片操作取nameList第二个到第四个元素:",nameList[1:5])
print("------------------------------------------------------------------------------")
print("------------------------------------------------------------------------------")
# 切片的一些常用操作
numsList = list(range(30))
print("数字列表内容为:\n",numsList)
print("------------------------------------------------------------------------------")
print("数字列表前10个数内容:",numsList[0:10])
print("数字列表前10个数内容:",numsList[:10])
print("\n")
print("数字列表后10个数内容:",numsList[-10:])
print("数字列表前11-20个数内容:",numsList[10:20])
print("数字列表前10个数每隔两个取一个:",numsList[0:10:2])
print("数字列表前10个数每隔两个取一个:",numsList[:10:2])
print("数字列表每隔3个数取一个:",numsList[::3])
print("数字列表内容:\n",numsList[:])
# Tips:
# 1.tuple可以使用切片操作,操作的结果仍是tuple;
# (0,1,2,3,4,5)[:3] ===> (0,1,2)
# 2.字符串使用切片操作,一个字符就是一个元素
# "Welcome to FUXI Technology."[:3] ===> "Wel"
# 结果输出:
nameList的内容为: ['Willard', 'ChenJD', 'ChenBao', 'ChenXiaoBao', 'hackerLuo']
------------------------------------------------------------------------------
nameList前三个元素: ['Willard', 'ChenJD', 'ChenBao']
------------------------------------------------------------------------------
使用切片操作取nameList前三个元素: ['Willard', 'ChenJD', 'ChenBao']
使用切片操作取nameList第二个到第四个元素: ['ChenJD', 'ChenBao', 'ChenXiaoBao', 'hackerLuo']
------------------------------------------------------------------------------
------------------------------------------------------------------------------
数字列表内容为:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
------------------------------------------------------------------------------
数字列表前10个数内容: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
数字列表前10个数内容: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
数字列表后10个数内容: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
数字列表前11-20个数内容: [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
数字列表前10个数每隔两个取一个: [0, 2, 4, 6, 8]
数字列表前10个数每隔两个取一个: [0, 2, 4, 6, 8]
数字列表每隔3个数取一个: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
数字列表内容:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
2.迭代
# 给定一个list或tuple,通过for循环来遍历这个list或tuple,这种遍历称为迭代(iteration);# 迭代通过for...in来完成;# 实例1:迭代dictpersonInfoDict = {"name":"Willard","age":18,"job":"Engineer"}print("使用迭代读取dict内容!")print("personInfoDict的内容:",personInfoDict)print("------------------------------------------------------------------------------")# 读取personInfoDict的key值print("personInfoDict的key值:")for key in personInfoDict: print(key,end = " ")print("\n")print("personInfoDict的value值:")for value in personInfoDict.values(): print(value,end = " ") print("\n")print("personInfoDict的key-value值:")for item in personInfoDict.items(): print(item,end = " ")print("\n")print("------------------------------------------------------------------------------")print("------------------------------------------------------------------------------")# 实例2:迭代读取字符串userNameStr = "WillardLuo"print("使用迭代读取字符串内容!")print("userNameStr的内容:",userNameStr)print("------------------------------------------------------------------------------")print("userNameStr的每个元素为:")for word in userNameStr: print(word,end = " ")# 给定一个list或tuple,通过for循环来遍历这个list或tuple,这种遍历称为迭代(iteration);
# 迭代通过for...in来完成;
# 实例1:迭代dict
personInfoDict = {"name":"Willard","age":18,"job":"Engineer"}
print("使用迭代读取dict内容!")
print("personInfoDict的内容:",personInfoDict)
print("------------------------------------------------------------------------------")
# 读取personInfoDict的key值
print("personInfoDict的key值:")
for key in personInfoDict:
print(key,end = " ")
print("\n")
print("personInfoDict的value值:")
for value in personInfoDict.values():
print(value,end = " ")
print("\n")
print("personInfoDict的key-value值:")
for item in personInfoDict.items():
print(item,end = " ")
print("\n")
print("------------------------------------------------------------------------------")
print("------------------------------------------------------------------------------")
# 实例2:迭代读取字符串
userNameStr = "WillardLuo"
print("使用迭代读取字符串内容!")
print("userNameStr的内容:",userNameStr)
print("------------------------------------------------------------------------------")
print("userNameStr的每个元素为:")
for word in userNameStr:
print(word,end = " ")
# 结果输出:
使用迭代读取dict内容!
personInfoDict的内容: {'name': 'Willard', 'age': 18, 'job': 'Engineer'}
------------------------------------------------------------------------------
personInfoDict的key值:
name age jobpersonInfoDict的value值:
Willard 18 EngineerpersonInfoDict的key-value值:
('name', 'Willard') ('age', 18) ('job', 'Engineer')------------------------------------------------------------------------------
------------------------------------------------------------------------------
使用迭代读取字符串内容!
userNameStr的内容: WillardLuo
------------------------------------------------------------------------------
userNameStr的每个元素为:
W i l l a r d L u o
# Tips:
# 1.使用for...in循环需要作用于一个可迭代对象;
# 2.判断一个对象是否是可迭代对象,可通过collections.abs模块的Iterable类型判断
from collections.abc import Iterable
nameStr = "WillardLuo"
nameList = ["Willard","ChenJD","ChenBao"]
numberTuple = (1,2,3,4,5)
personInfoDict = {"name":"Willard","age":18}
number = 100
print("判断字符串是否是可迭代对象!")
print(isinstance(nameStr,Iterable))
print("判断列表是否是可迭代对象!")
print(isinstance(nameList,Iterable))
print("判断元组是否是可迭代对象!")
print(isinstance(numberTuple,Iterable))
print("判断字典是否是可迭代对象!")
print(isinstance(personInfoDict,Iterable))
print("判断数字是否是可迭代对象!")
print(isinstance(number,Iterable))
print("------------------------------------------------------------------------------")
print("------------------------------------------------------------------------------")
# 实现对list进行下标循环
# 使用enumerate函数把一个list变成"索引-元素"对
nameList = ["Willard","ChenJD","ChenBao","ChenXiaoBao","hackerLuo"]
for index,value in enumerate(nameList):
print(index,value)
print("------------------------------------------------------------------------------")
willardInfo = {"name":"Willard","age":18,"job":"Engineer"}
# 循环中同时引用两个变量,数据处理中常用
for key,value in willardInfo.items():
print(key,value)
# 结果输出:
判断字符串是否是可迭代对象!
True
判断列表是否是可迭代对象!
True
判断元组是否是可迭代对象!
True
判断字典是否是可迭代对象!
True
判断数字是否是可迭代对象!
False
------------------------------------------------------------------------------
------------------------------------------------------------------------------
0 Willard
1 ChenJD
2 ChenBao
3 ChenXiaoBao
4 hackerLuo
------------------------------------------------------------------------------
name Willard
age 18
job Engineer
3.列表生成式
# 列表生成式:List Comprehensions,用来创建list的生成式
# 实例1:生成[1×1,2×2,3×3,...,10×10]的列表
# 法一:循环
numsList = []
for num in range(1,11):
numsList.append(num * num)
print("numsList的内容:",numsList)
print("---------------------------------------------------------")
# 法二:列表生成式
print("列表生成式生成上述列表!")
# 把要生成的元素放在前面,后面加循环
print([num * num for num in range(1,11)])
print("---------------------------------------------------------")
# 在循环后添加if判断,筛选1-10中偶数的平方
print("列表生成式生成1-10偶数的平方的列表")
print([num * num for num in range(1,11) if num % 2 == 0])
print("---------------------------------------------------------")
# 双重循环
print("列表生成式应用于双重循环")
print([m + n for m in "Willard" for n in "ChenJD"])
# 结果输出:
numsList的内容: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
---------------------------------------------------------
列表生成式生成上述列表!
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
---------------------------------------------------------
列表生成式生成1-10偶数的平方的列表
[4, 16, 36, 64, 100]
---------------------------------------------------------
列表生成式应用于双重循环
['WC', 'Wh', 'We', 'Wn', 'WJ', 'WD', 'iC', 'ih', 'ie', 'in', 'iJ', 'iD', 'lC', 'lh', 'le', 'ln', 'lJ', 'lD', 'lC', 'lh', 'le', 'ln', 'lJ', 'lD', 'aC', 'ah', 'ae', 'an', 'aJ', 'aD', 'rC', 'rh', 're', 'rn', 'rJ', 'rD', 'dC', 'dh', 'de', 'dn', 'dJ', 'dD']
来源:https://fuxi-willard.blog.csdn.net/article/details/122669515


猜你喜欢
- 1.列表推导式书写形式:[表达式 for 变量 in 列表] 或者 [表达式 for 变量
- 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下:在这篇文章中,我们将基于 Python 讨论自然语
- 前言本文主要给大家介绍了关于Python利用元组代替字典并为元组元素命名的相关内容,下面话不多说了,来一起看看详细的介绍吧场景:一般使用字典
- 1.前言在移动商业广告的测试的工作中,经常会需要对广告请求进行捕获和分析,常使用的有两个测试工具:fiddler,Charles,这两个工具
- 没什么实际用途,纯属消遣Quick Click<html><head><title>Quick_Clic
- %matplotlib inline是一个魔法函数(Magic Functions)。官方给出的定义是:IPython有一组预先定义好的所谓
- 本站收集的js实现的同步动态显示当前日期,时间和星期几的代码,我经常用在自己做的企业网站的后台,方便嘛。效果可以看看本站的首页,呵呵!而且代
- 通常懒加载等都会通过监听scroll事件用getBoundingClientRect()来判断元素位置来决定是否可以开始加载。性能开销是比较
- python对Ref文档进行去重首先将txt文档提取到Excel表格中筛选出重复项,并且整理到txt中:需要去重的目标txt也准备好:接下来
- 本文实例讲述了Python实现检测文件MD5值的方法。分享给大家供大家参考,具体如下:前面介绍过Python计算文件md5值的方法,这里分析
- import导入包呈现灰色问题问题描述pycharm中单个py文件导入包时呈灰色,而别的文件却能正常显示,我按照CSDN博客上给的设置①右键
- 以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页的代码效率更高一些,更快一
- 一、概述OLAP的系统(即Online Aanalyse Process)一般用于系统决策使用。通常和数据仓库、数据分析、数据挖掘等概念联系
- MySQL安全性指南(3) 作 者: 晏子2.4 不用GRANT设置用户如果你有一个早于3.22.11的MySQL版本,你不能使用GRANT
- 更新:2017.07.17补充滚动条、win批处理拉起py2017.08.13新增自定义图标一、背景:1.工作中自己及同事在查数据库、测试接
- 今天因工作需要写了个小程序,用于在图片集中自动抽取需要的照片。该程序只是实现了基本功能,还有很多需要完善的地方,展示出来算是给自己鼓鼓气吧。
- 在我发表上一篇《Zen Coding: 一种快速编写HTML/CSS代码的方法》之后,有网友表示不知道怎么在Dreamweaver上使用ze
- 一. 引言在数据分析和可视化领域,数据的有效呈现是至关重要的。Python作为一种强大的编程语言,提供了多种数据可视化工具和库。其中,Plo
- 本文实例讲述了Python使用matplotlib实现在坐标系中画一个矩形的方法。分享给大家供大家参考。具体实现方法如下:import ma
- 导语一直以来,中国象棋都是中华民族的一种象征,当然也是人们最为喜感的一种娱乐方式。在若干年前,人们都习惯于约上自己的棋友,来一种激战。可是,