本節(jié)主要介紹數(shù)字列表的操作。
一忧换、定義數(shù)字列表
和普通列表的定義方式相同恬惯,直接使用[]
即可。也可以使用range()
函數(shù)來定義亚茬。
number = list(range(1, 11)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
注意:2.x中range()
的類型是list
酪耳,3.x中range()
的類型是range
,因此在使用range()
定義列表時(shí)刹缝,最好加入list()
函數(shù)碗暗。
也可以通過乘法的方式定義列表。
image.png
二梢夯、max言疗、min、sum函數(shù)
number = [2, 2, 0, 3, 5, 9, 8]
print min(number) # 最小值
print max(number) # 最大值
print sum(number) # 求和
image.png
思考:用一行代碼實(shí)現(xiàn)1-100的和
print sum(list(range(1, 101)))
三颂砸、分片賦值
需求一:將列表[1, 5]修改為[1, 2, 3, 4, 5]
number = [1, 5]
print number
# 當(dāng)start和stop的索引相等時(shí)噪奄,即在該索引處為list進(jìn)行分片賦值
number[1:1] = [2, 3, 4]
print number
image.png
需求二:將列表[1, 2, 3, 4, 5]修改為[1, 5]
number = [1, 2, 3, 4, 5]
print number
# 當(dāng)賦空值時(shí),會(huì)清空start和stop索引之間的數(shù)據(jù)人乓,包括start不包括stop
number[1:4] = []
print number
image.png
需求三:改變列表index
后的值
str_list = ["Hello", "word!"]
print str_list
# 修該str_list索引1后的值
str_list[1:] = ["Python!", "I", "love", "Python!"]
print str_list
image.png
四勤篮、count函數(shù)
count
用于統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)。
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
image.png
再來一個(gè)復(fù)雜的列表
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
語句統(tǒng)計(jì)number
中元素1
出現(xiàn)的次數(shù)色罚,在number
中只有第0位
和第4位
才是1
碰缔,因此統(tǒng)計(jì)結(jié)果是2
。 - 第二行
print
語句統(tǒng)計(jì)number
中元素[1]
出現(xiàn)的次數(shù)戳护,在number
中只有第2位
才是[1]
金抡,因此統(tǒng)計(jì)結(jié)果是1
。 - 第三行
print
語句統(tǒng)計(jì)number
中元素[1, 2]
出現(xiàn)的次數(shù)腌且,在number
中只有第1位
才是[1, 2]
竟终,因此統(tǒng)計(jì)結(jié)果是1
。 - 第四行
print
語句統(tǒng)計(jì)number[3]
中元素1
出現(xiàn)的次數(shù)切蟋,number[3]
的值為[2, 1, [1, 2], 1]
统捶,在number[3]
中只有第1位
和第3位
才是1
,因此統(tǒng)計(jì)結(jié)果是2
。
運(yùn)行結(jié)果如下:
image.png
五喘鸟、extend函數(shù)
extend
函數(shù)用于在列表的末尾追加一個(gè)新的列表匆绣。
number_a = [1, 2, 3]
number_b = [4, 5, 6]
number_a.extend(number_b)
print number_a # [1, 2, 3, 4, 5, 6]
image.png
另外,也可以用連接操作實(shí)現(xiàn)
extend
的效果什黑,但是連接操作是用兩個(gè)列表的副本進(jìn)行連接崎淳,會(huì)生成一個(gè)新的列表,而不改變?cè)瓉淼牧斜磴蛋眩绻偈褂?code>number_a += number_b去改變?cè)斜淼闹导鸢迹时?code>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]
image.png
當(dāng)然我們也可以使用
分片賦值
的方法實(shí)現(xiàn)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]
image.png
六、index
index
用于從列表中找出某個(gè)元素第一次匹配項(xiàng)的索引位置橘蜜。
str_list = ['how', 'do', 'you', 'do']
print str_list.index('do') # 1
image.png
注意:當(dāng)找不到時(shí)會(huì)報(bào)異常
str_list = ['how', 'do', 'you', 'do']
print str_list.index('hello')
image.png