本节主要介绍数字列表的操作。
一、定义数字列表
和普通列表的定义方式相同,直接使用[]
即可。也可以使用range()
函数来定义。
number = list(range(1, 11)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
注意:2.x中range()
的类型是list
,3.x中range()
的类型是range
,因此在使用range()
定义列表时,最好加入list()
函数。
也可以通过乘法的方式定义列表。
二、max、min、sum函数
number = [2, 2, 0, 3, 5, 9, 8]
print min(number) # 最小值
print max(number) # 最大值
print sum(number) # 求和
思考:用一行代码实现1-100的和
print sum(list(range(1, 101)))
三、分片赋值
需求一:将列表[1, 5]修改为[1, 2, 3, 4, 5]
number = [1, 5]
print number
# 当start和stop的索引相等时,即在该索引处为list进行分片赋值
number[1:1] = [2, 3, 4]
print number
需求二:将列表[1, 2, 3, 4, 5]修改为[1, 5]
number = [1, 2, 3, 4, 5]
print number
# 当赋空值时,会清空start和stop索引之间的数据,包括start不包括stop
number[1:4] = []
print number
需求三:改变列表index
后的值
str_list = ["Hello", "word!"]
print str_list
# 修该str_list索引1后的值
str_list[1:] = ["Python!", "I", "love", "Python!"]
print str_list
四、count函数
count
用于统计某个元素在列表中出现的次数。
str_list = ['and', 'or', 'hello', 'to', 'in', 'hello', 'and', 'hello']
print str_list.count('hello') # 3
number = [1, 2, 3, 4, 1, 5]
print number.count(1) # 2
再来一个复杂的列表
number = [1, [1, 2], [1], [2, 1, [1, 2], 1], 1]
print number.count(1) # 2
print number.count([1]) # 1
print number.count([1, 2]) # 1
print number[3].count(1) # 2
- 第一行
print
语句统计number
中元素1
出现的次数,在number
中只有第0位
和第4位
才是1
,因此统计结果是2
。 - 第二行
print
语句统计number
中元素[1]
出现的次数,在number
中只有第2位
才是[1]
,因此统计结果是1
。 - 第三行
print
语句统计number
中元素[1, 2]
出现的次数,在number
中只有第1位
才是[1, 2]
,因此统计结果是1
。 - 第四行
print
语句统计number[3]
中元素1
出现的次数,number[3]
的值为[2, 1, [1, 2], 1]
,在number[3]
中只有第1位
和第3位
才是1
,因此统计结果是2
。
运行结果如下:
五、extend函数
extend
函数用于在列表的末尾追加一个新的列表。
number_a = [1, 2, 3]
number_b = [4, 5, 6]
number_a.extend(number_b)
print number_a # [1, 2, 3, 4, 5, 6]
另外,也可以用连接操作实现
extend
的效果,但是连接操作是用两个列表的副本进行连接,会生成一个新的列表,而不改变原来的列表,如果再使用number_a += number_b
去改变原列表的值,效率比extend
较低。
number_a = [1, 2, 3]
number_b = [4, 5, 6]
print number_a + number_b # [1, 2, 3, 4, 5, 6]
print number_a # [1, 2, 3]
当然我们也可以使用
分片赋值
的方法实现extend
的效果,但是代码的可读性不如extend
。
number_a = [1, 2, 3]
number_b = [4, 5, 6]
number_a[len(number_a):] = number_b
print number_a # [1, 2, 3, 4, 5, 6]
六、index
index
用于从列表中找出某个元素第一次匹配项的索引位置。
str_list = ['how', 'do', 'you', 'do']
print str_list.index('do') # 1
注意:当找不到时会报异常
str_list = ['how', 'do', 'you', 'do']
print str_list.index('hello')