Python基础知识-Part6:高级特性之切片&迭代

本文介绍了Python中的切片操作,包括如何从list、tuple和字符串中选取部分数据,以及使用负数下标表示倒数位置。此外,还讲解了迭代的概念,如如何用for循环遍历list、tuple和dict,以及利用enumerate获取索引和元素对。对于dict,还提到了迭代其key、value或items的方法。

切片

1、从“list”和“tuple”中取出一部分的做法,除了最笨的一个一个拿出或者循环之外,Python提供了“切片”(Slice)操作。

2、“list_name[0:3]”即表示从“list_name”中,取出从“0”下标到“3”下标之间的数据,但是不包含“3”下标的数据。

3、“切片”也可以使用“负数表示倒数第几个的方式”,“list_name[-2:]”即为“从倒数第二个到最后一个”。

4、灵活运用切片可以很方便的获得需要的数据,“从第6个到最后”、“前5个”、“所有数,每5个取第一个”、“前十个数中的偶数”、“前十个数中的奇数”。

5、“tuple”的使用方式同理“list”即可,只是操作对象成为了“tuple”。

6、“字符串”也可以使用“切片”,如下为“获得去除首尾空格字符串”。

list_name = ['A', 'B', 'C', 'D', 'E']
print("list_name is %s" % (list_name))
print("list_name[0:3] is %s\n" % (list_name[0:3]))
# 切片从0开始索引,0可以省略,list_name[0:3] == list_name[:3]
# list_name[0:3]是从0开始,索取到下标为3为止,但是不包含第(3+1=)4个

print("list_name[-2:] is %s\n" % (list_name[-2:]))

# range()用于创建一个整数列表,range(3)就是[0, 1, 2, 3]
list_NameHyaKu = list(range(99))
print("list_NameHyaKu[5::] is %s\n" % (list_NameHyaKu[5::]))
print("list_NameHyaKu[:5:] is %s\n" % (list_NameHyaKu[:5:]))
print("list_NameHyaKu[::5] is %s\n" % (list_NameHyaKu[::5]))
print("list_NameHyaKu[:10:2] is %s\n" % (list_NameHyaKu[:10:2]))
print("list_NameHyaKu[1:10:2] is %s\n" % (list_NameHyaKu[1:10:2]))

tuple_name = ('a', 'b', 'c', 'd', 'e')
print("tuple_name[-2:] = %s\n" % (tuple_name[-2:],))

# 字符串也可以做切片操作,如下去除首尾空格
str = " hello "
print("str is '%s'" % (str))

str1 = str[1:-1]
print("str1 is '%s'" % (str1))

 

迭代

1、对于给定的“list”或者“tuple”,使用“for”循环来遍历,称为“迭代”(Iteration)。

2、“dict”也是可以迭代的,但是默认情况下迭代出的是“dict”的“key”。可以通过“dict_name.values()”迭代出“dict”的“value”,或者“dict_name.item()”同时迭代“key”和“value”。

3、判断一个对象是否可以进行迭代,需要通过“collections”模块的“Iterable”类型来判断,调用的函数是“isinstance”。

4、“enumerate”函数可以将“list”或者“tuple”变成“索引-元素对”,这样就可以迭代“索引(下标)”和“元素”本身了。

from collections.abc import Iterable
print(isinstance("abc", Iterable))

dict_name = {'a': 1, 'b': 2, 'c': 3}
list_name = list(range(5, 9))
list_name1 = [(1, 2, 3), (4, 5, 6)]
tuple_name = ('a', 'b', 'c')

for key in dict_name:
    print(key)

print()

for value in dict_name.values():
    print(value)

print()

for key, value in dict_name.items():
    print(key, value)

print()

for c in "ABC":
    print(c)

print()

for i, value in enumerate(list_name):
    print(i, value)

print()

for i, value in enumerate(tuple_name):
    print(i, value)

print()

for x, y, z in list_name1:
    print(x, y, z)

print()

 

【最优潮流】直流最优潮流(OPF)课设(Matlab代码实现)内容概要:本文档主要围绕“直流最优潮流(OPF)课设”的Matlab代码实现展开,属于电力系统优化领域的教学与科研实践内容。文档介绍了通过Matlab进行电力系统最优潮流计算的基本原理与编程实现方法,重点聚焦于直流最优潮流模型的构建与求解过程,适用于课程设计或科研入门实践。文中提及使用YALMIP等优化工具包进行建模,并提供了相关资源下载链接,便于读者复现与学习。此外,文档还列举了大量与电力系统、智能优化算法、机器学习、路径规划等相关的Matlab仿真案例,体现出其服务于科研仿真辅导的综合性平台性质。; 适合人群:电气工程、自动化、电力系统及相关专业的本科生、研究生,以及从事电力系统优化、智能算法应用研究的科研人员。; 使用场景及目标:①掌握直流最优潮流的基本原理与Matlab实现方法;②完成课程设计或科研项目中的电力系统优化任务;③借助提供的丰富案例资源,拓展在智能优化、状态估计、微电网调度等方向的研究思路与技术手段。; 阅读建议:建议读者结合文档中提供的网盘资源,下载完整代码与工具包,边学习理论边动手实践。重点关注YALMIP工具的使用方法,并通过复现文中提到的多个案例,加深对电力系统优化问题建模与求解的理解。
该系统是一款基于 Python 基础语法开发的轻量化出口报关管理工具,专为 Python 作业设计,无需复杂第三方依赖,直接运行即可使用,核心定位是满足基础报关业务的数据录入与查询需求。 核心特性 功能模块:包含 4 个核心业务功能 + 1 个系统控制功能,分别为商品录入、商品查询、报关单录入、报关单查询及退出系统,流程逻辑贴合实际报关业务的基础流程(先录商品再填报关单)。 数据存储:采用列表 + 字典的内存存储方式,模拟数据库功能,无需额外配置存储环境,适合作业场景的快速演示与使用(程序关闭后数据不持久化,符合基础课作业要求)。 数据验证:内置基础合法性校验机制,可检测单价、库存、报关数量等数字类输入的格式正确性,同时限制单价为正数、库存非负数、报关数量为正数,避免无效数据录入。 交互体验:界面简洁直观,通过 emoji 图标和分隔线优化视觉呈现,操作时提供明确的成功 / 失败提示(如录入成功、数据不存在),输入错误时给出清晰引导。 ———————————————— 版权声明:本文为优快云博主「Mary131」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/2503_94560268/article/details/155672241
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值