Python之路(一)数组和元组

Python作为一种解释型语言,拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。
从1991年第一个版本发布,到如今驰骋编程语言界近三十载,最近更是如火如荼,特别是这一波人工智能的兴起,将原本已经横跨多个领域(web开发,GUI开发,数据分析,数据可视化,人工智能)的Python,推向了一个新高度。

废话不多说,按 Linus 的话说: Talk is cheap, show me the code.

以下相关代码均在Python3.6环境下验证通过。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#可使用不同的类型进行数组的初始化,无需像C++/Java必须同种类型才能同属一个数组
my_list = [1, 3, 5, 7, "hello", 'one', 3.14]

li = [1,2,3] # 初始化
li.append(4) # 在数组最后添加一个元素4
for item in li:
print(item)

print('========')
for i in range(len(li)):
print(li[i])

print('========')
print(li[0]) # 打印数组的第一个元素1
print(li[1]) # 打印数组的第二个元素2
print(li[-1]) # 打印数组的最后一个元素4
li.append([5,6]) # 将[5,6]数组当做一个整体添加到数组最后
print(li[-1]) # 打印数组最后一个元素 [5,6]
li.extend([7,8]) # 将[7,8]数组内元素展开并添加到li中,而不是将[7,8]当做一个元素
print(li[-1]) # 打印数组最后一个元素 8

输出结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
========
1
2
3
4
========
1
2
4
[5, 6]
8

上面一段代码列了基本的数组操作,访问元素,循环输出,其中li[-1]这种特殊的访问方式,在C/C++和Java中是没有的,可以从另一个方面理解,就是li[len(li) - 1],只不过省略了len(li)

接下里看下和数组有很多相似的元组tuple
使用括号 () 进行初始化,只可读,不可写

1
2
3
4
5
6
tp = (1, 3, 5, 'hello', 5.5, "one")
print(tp)
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print(t)

输出结果:

1
2
3
(1, 3, 5, 'hello', 5.5, 'one')

('a', 'b', ['X', 'Y'])

说好的只读呢,这里应该理解成元素指向的不可变,第2个元组指向还是一个数组,只不过是数组内部元素发生了改变。

今天就到这。。