Python学习日记 Day4列表操作

今天是2020年2月13日,多云,10~16℃

一、遍历列表:for循环

要遍历列表,可使用Python中的for循环语句。使用方式类似C#中的foreach语句。

#for a in a_list:	
names = ["Harry","Bulk","Jack","Parker","Michael"]
for name in names:
    print(name)
'''
Output:
Harry
Bulk
Jack
Parker
Michael
'''

for循环结束后,遍历用的变量将储存循环中最后一个元素。
for循环可用于所有可迭代对象。

不同于C/C++等语言,Python不使用大括号( {} )作为语句分块的标识,而是根据语句前的缩进来分块。

for name in names:
	print("My name is ")
	print(name)
print(names)
'''
Output:
My name is
Harry
My name is
Bulk
My name is
Jack
My name is
Parker
My name is
Michael
['Harry', 'Bulk', 'Jack', 'Parker', 'Michael']
'''

二、数值列表

1、创建数值列表:range函数与list函数

range函数能够简单快速地生成一系列整数。

#range(start , end , step = none)
numbers = range(1,6)
for number in numbers:
    print(number)
print(numbers)
'''
Output:
1
2
3
4
5
range(1, 6)
'''

range函数还有第三个缺省参数,用于指定数字间的间隔。
生成的数字将从 start 开始,到 end - 1 结束。
range函数返回的并非list类型,而是range类型。

生成数值序列后,可以用list函数将序列转换成list类型。

numbers = range(1,6)
number_list = list(numbers)
print(number_list)		#Output:[1, 2, 3, 4, 5]

利用range函数和list函数,可以创建许多复杂的数值列表。

#创建平方数列表
numbers = range(1,6)
number_list = []
for number in numbers:
    number **= 2
    number_list.append(number)
print(number_list)		#Output:[1, 4, 9, 16, 25]

2、数值列表的简单统计

Python提供了一些专门用于数值列表处理的函数。下面以上方创建的平方数列表 number_list 为对象示例。

● 求最大值:max函数

max函数需要一个数值列表,并返回其中的最大值。

#max(list_name)
max_number = max(number_list)
print(max_number)		#Output:25
● 求最小值:min函数

min函数需要一个数值列表,并返回其中的最小值。

#min(list_name)
min_number = min(number_list)
print(min_number)		#Output:1

max函数和min函数还可以不使用列表,而使用一串数字序列作为参数序列。
在使用列表(可迭代对象)为参数时,还可以另外指定参数 key 和 default。

● 求和:sum函数

sum函数需要一个数值列表,并返回数值列表的元素之和。

#sum(list_name)
sum_number = sum(number_list)
print(sum_number)		#Output:55

sum函数还可以添加一个参数 start ( 默认为0),返回结果将为列表数值和再加上start的值。

3、列表解析

列表解析将快速简单地使用一行代码完成列表的创建。

#list_name = [exp for a in iterabe ]	其中exp为含有变量a的表达式
number_list = [number ** 2 for number in range[1,6]]
print(number_list)		#Output:[1, 4, 9, 16, 25]

三、列表切片

若想获取列表的子列表,可通过索引对列表进行切片。

#list_name[index1 : index2]
number_list = [1,4,9,16,25]
number_list1 = number_list[1:4]
print(number_list1)		#Output:[4, 9, 16]

切片时参数 index1 和 index2 都可以省略。index1 默认为0,index2 默认为列表长度,即 len(list_name) 。

使用切片时一定要注意索引下标从0开始。

列表切片将创建一个新的列表,或者说将原列表的一部分复制,而非将另一个变量绑定在原列表上。

number_list1 = [1,4,9,16,25]
number_list2 = number_list1[:]
number_list1.append("I'm list1.")
number_list2.append("I'm list2.")
print(number_list1)
print(number_list2)
'''
Output:
[1, 4, 9, 16, 25, "I'm list1."]
[1, 4, 9, 16, 25, "I'm list2."]
'''

若只想遍历列表的部分子列表,也可以使用列表切片。

for number in number_list[:3]:
	print(number)
'''
Output:
1
4
9
'''

四、元组

当不希望列表的元素被修改时,Python提供了元组这一数据类型。列表和元组的区别就在于元素是否可被修改。
元组的定义和列表类似,区别在于元组使用圆括号( () )而非方括号( [] )。

number_tuple = (1,4,9,16,25)
number_tuple[1] = 3		#traceback:'tuple' object does not support item assignment

元组可像列表一样进行遍历或切片,且切片得到的也是一个元组。
元组也可使用list函数来转换成list类型。

number_tuple = (1,4,9,16,25)
for number in number_tuple:
    print(number)
number_tuple1 = number_tuple[1:4]
print(type(number_tuple1))
number_list = list(number_tuple)
print(number_list)
'''
Output:
1
4
9
16
25

[1, 4, 9, 16, 25]
'''

元组的元素虽然不能被修改,但元组变量本身可被修改。

number_tuple = (1,2,3,4,5)
print(number_tuple)
number_tuple = (6,7,8,9,10)
print(number_tuple)
'''
Output:
(1, 2, 3, 4, 5)
(6, 7, 8, 9, 10)
'''

平等不能简单地理解为财富地绝对相同,而是在权力上不诉诸暴力,仅依据秩序和法律行事。

你可能感兴趣的:(Python)