No.3. 列表(list)
1. 创建列表
列表类似于C语言中的数组,即由一堆数据排列成的组。但与数组不同的是,Python中的列表内容可以是多样的,即可以是字符串(string)/小数(float)/整型(int)/字符(char)甚至于列表(list)等。一个正确格式的列表如下:
home=['father','mother','sister','brother','me',[1,2,2.34,'c']]
上述句子创建了一个home列表,可以看到里面有多种类型。为区分字符串与变量,Python中字符串或者字符需用""or''括起来以表示这是一个字符串或字符。值得一提的是,与C语言不同,Python的双引号""与单引号''并无区分。列表内的每一个内容称为元素。
2. 访问列表
列表与数组一样,是有序的、有索引的,列表元素从0开始,可以选择第x个元素输出,例如,我们接着第1小节的代码输入:
print(home[0])
print()函数是一个简单的输出函数,会将你指定的变量值以字符串形式输出到对话窗口。不出意外,上述代码应该会输出home里的第0个元素即'father'。同样print(home[5])
会输出一个[1,2,2.34,'c']列表,读者可以试一试print(home[6])
andprint(home[-2])
看看会怎么样。P.S.-1索引在python中代表数组最后一位。
同样在它处,当我们需要用到元素时,我们可以用list[x]来表示list内的某一个元素。例如mom=home[1]
定义了一个字符串变量mom,该变量的值为'mother'。
也可以使用这个代码:
print(home)
将会输出home列表的值。
3. 修改元素
如果要修改元素,可以用很简单的赋值语句"=","="在python中表示赋值,将等号后的值赋给等号前的变量。例如,同样接着上面的代码输入:
home[5]='grandpa'
上面的赋值语句会将home[5]的值(读者可以想一想是什么)改为字符串'grandpa'。如要查看home列表修改后的值,可以使用第二小节print函数输出home查看。
4. 添加元素
添加元素可以使用简单的两个函数,append()和insert(),从这里也可以看到,列表内元素的数目是可以变化的,也就是说,列表是一个动态空间,也就是说,我们完全可以以这样的方式创建一个列表:
practice=[]
上行代码创建了一个空列表。
append():
practice.append('a')
上面是append()使用示例,注意append()的用法,是list.append(X),X为你想插入的值,这个值会push到列表末尾。
insert();
home.insert(6,'grandma')
上面是insert()示例,insert(a,b),将b放于a索引处,a索引原值后移一位至a+1索引处,a索引之后的值同样后移一位。读者也不妨试试home.insert(100,'practice')
看一看会发生什么。
5. 删除元素
删除元素可以选择三个方式,del(),pop(),remove(),需求不同,用法不同。举例:
del(home[0]) #删除索引为0的'father'
she=home.pop() #将列表首位(引为0)pop出来赋值给she
he=home.pop(1) #将列表索引为1的值pop出赋值为he
home.remove('me') #将元素'me'移出列表home
上面代码中,括号()内的内容可以替换为你想要的内容,例如:
home.pop(2) #删除索引为2的元素
读者也可以多试几次,可以拿100,-1,0,a等试一下,观察报错内容,了解这些函数如何使用。
6. 列表快速排序(快排)
排序,一个学习任何语言都绕不开的问题,python同Cpp一样,提供了快排函数sort(),可以使用:
home.sort()
对列表home进行从小到大排序,排序顺序依acsii码进行,首位优先,首位相同排序次位。sort函数内置reverse变量,将reverse赋值为真(True)即可反向排序,即从大到小,举例:
home.sort(reverse=True)
Python同时还提供了sorted()函数,此函数提供一个排列好的新列表而并不改变源列表的值。例如:
Home=sorted(home)
指将home从小到大排序为Home,Python会区分大小写字母将其认为不同变量。
使用sort函数之前要求列表内的元素均为同一数据类型,否则会报错。同时,sort并不能快排列表内的列表,但能快排包含列表的列表(强!)。快排包含列表的列表要求外列表内所有元素为同一类型,内列表内所有元素为同一类型,内列表内的元素与另几个内列表内的元素为同一类型,排序规则为,从小到大(reverse=False)排序各内层列表第一位,第一位相等排序第二位,依此类推。
7. 列表常用函数
length=len(home)
将home列表的长度赋值给length。
home.reverse()
翻转列表。
除上文之外,其实关于列表的相关知识还有很多,之后我们在使用中也会逐一提到。
作者的话:本系列创立的初衷,乃至我的整个博客创立的初衷,是想鼓励我自己与大家一起学习。我自己会首先挑选我感兴趣的内容进行学习,边学习边总结成随笔与大家一起分享,途中我可能也会在随笔中放入一些思考与问题,看见文章的有缘的大家也多多评论,我们一起讨论。也欢迎大佬们指正,我会更加完善我的文章与内容 ( ̄︶ ̄)↗ 。
下周将开启自动控制内容以及神经动力学内容,希望一切顺利ヽ( ̄ω ̄( ̄ω ̄〃)ゝ。