栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2021-10-18

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-18

programming class note 2
前言

这周老师的重点在于带着我们搞清楚list和string的相关变换,其中最难的一点在于底层存储和函数的作用域。
讲了好多节课= =
再然后的一个新知识点是关于列表里的索引,比如list[0][1][2]之类的。


一、swap的变换
def swap01(name):
    return name[1:2] + name[:1] + name[2:]  #1
def swap01L(lst):
    return lst[1:2] + lst[:1] + lst[2:]     #2
def xswap01(lst):
    temp = lst[0]                           #3
    lst[0] = lst[1]
    lst[1] = temp

以上是对于string和list的第一个及第二个字母变换的相关函数。
其中,第一个函数处理string,第二个函数处理list,但是这两种方式都不会改变传入参数的底层存储,二者均只是返回了通过切片组成的字符串,并且在运行函数的过程中,由于输入的参数name和lst是局部变量,所以会开辟新的空间为二者进行函数变换,但是一旦出了函数的作用域,其生存周期结束,开辟的空间会被释放,所以真正传入的底层参数并不会发生改变。
第三个函数能够同时作用在string和list中,并且会改变底层输入参数的相关信息,因为其为【赋值】方式。

(在C语言中,数组&列表的变换由底层指针来进行变换,python中虽然没有指针,但是原理应该是一样的)


真的很头大,但是一旦画框框用箭头表示就会很清楚,比如:

方框代表底层存储的空间,箭头代表这块地址指向的存储空间。【This picture is just an example!】

二、列表索引

代码如下(示例):

lst = [-1, 0, ['-1', '0', 1], "-1,0"]

#print(lst[0][0])
print(lst[3][0])
print(lst[2][0][0])
print(lst[2][0][-1])
print(lst[lst[0]] + ",1")
print(lst[2][:-1] + [int(lst[3][-1])])

其中,print(lst[0][0])是会报错的,因为取数组中第一个数是-1,对于int类型,无法取[0]。

对于这个列表,可以用下图清晰判断其结构:


仔细想想就ok了hhh,还挺有意思的。

今日over


总结

好好复习: )

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347590.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号