记得最开始学接触Python就被它那高效简洁的代码吸引了,就决定要学Python,那时候还没大学毕业,在网易云课堂看一些Python的视频,但是因为后来从事Android开发又加上工作比较忙,所以就没有继续系统学习和梳理了,之前学的也都忘差不多了,现在决定重新系统地再学习一遍,记得刚工作的时候买了一本Head First Python,一直放在抽屉了没怎么看,现在又派上用场了,坚持下去,就会成功
先给出一个列表的定义:1
language = ["Python","Java","C/C++"]
列表定义:
如果你有其他高级语言的基础第一次接触Python的时候会很好奇,难道不需要为列表声明类型信息吗?答案是不用,Python的变量标识符没有类型,标识符只是名字,可以只是某个类型的数据对象,可以把Python的列表想象成是一个高层集合
关于列表在内存中存储:Python创建一个列表时,解释器会在内存中创建一个类似数组的数据结构来存储数据,数据堆自下而上堆放(形成一个堆栈)。和其他语言一样,默认第一项的编号也是从0开始。
可以通过print(language[0])
在屏幕上打出列表第一项的值
Python列表的一些方法:
len()
获取列表长度1
2
3
4 len(language)
3
print(len(language))
3
append()
在列表末尾增加一个数据项1
2
3"Swift") language.append(
print(language)
['Python', 'Java', 'C/C++', 'Swift']
pop()
从列表末尾删除数据项1
2
3
4
5 language.pop()
'Swift'
print(language)
['Python', 'Java', 'C/C++']
>>>
extend()
在列表末尾增加一个数据项集合1
2
3"Swift","Go"]) language.extend([
print(language)
['Python', 'Java', 'C/C++', 'Swift', 'Go']
remove()
在列表中找到并删除一个特定的数据项:1
2
3"Java") language.remove(
print(language)
['Python', 'C/C++', 'Swift', 'Go']
insert()
在某个特定位置前面插入一个数据项:1
2
32,"Java") language.insert(
print(language)
['Python', 'C/C++', 'Java', 'Swift', 'Go']
列表中可以混入不同类型的数据以及列表中嵌套列表,给出一个嵌套列表的例子,然后输出列表中的每一项:1
2
3
4
5
6
7
8
9
10
11"The Holy Grail",1975,"Terry Gilliam",91,["Graham Chapman",["Michael Palin","John Cleese","Terry Gilliam","Eric Idle","Terry Jones"]]] movies = [
print(movies)
['The Holy Grail', 1975, 'Terry Gilliam', 91, ['Graham Chapman', ['Michael Palin', 'John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]]
for each_item in movies:
print(each_item)
The Holy Grail
1975
Terry Gilliam
91
['Graham Chapman', ['Michael Palin', 'John Cleese', 'Terry Gilliam', 'Eric Idle', 'Terry Jones']]
你会发现,其实只是把列表中的每一项整个打印出来了,但是因为列表的有些项本身还是一个列表,甚至列表中还有列表,那么我们需要改进程序:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21for each_item in movies:
if isinstance(each_item,list):
for each_value in each_item:
if isinstance(each_value,list):
for nested_item in each_value:
print(nested_item)
else:
print(each_value)
else:
print(each_item)
The Holy Grail
1975
Terry Gilliam
91
Graham Chapman
Michael Palin
John Cleese
Terry Gilliam
Eric Idle
Terry Jones
这样打印出来的就没有列表了,但是你会发现重复代码很多,而且如果嵌套多层的话,代码要变的更臃肿,就不符合Python的简洁高效了,所以后面我们会来优化这段代码
注意几点
- 如果需要在一个字符串中嵌入一个双引号需要使用转义符:\ 像这样:\” 或者用单引号引起这个字符串。
- Python中,单引号和双引号都可以用来创建字符串,有一个规则是:如果字符串前面使用了某个引号(单引号或双引号),那么字符串后面也要用同样的引号:不能再字符串前后混合使用不同的引号。
- 可以通过help(insert)来查看BIF函数insert()方法的解释和用法