今天是对过往一些略过的知识补充
一.序列相乘
python中,使用数字n*一个序列会生成新的序列,如
输入
list = [None]*5
print(list)
---------------------------
输出
'C语言中文网C语言中文网C语言中文网'
比较特殊的是,列表类型在进行乘法运算时,还可以实现初始化指定长度列表的功能,例如如下代码,将创建一个长度为5的列表
#列表的创建用 [],后续讲解列表时会详细介绍
list = [None]*5
print(list)
----------------------------------
[None, None, None, None, None]
二.和序列相关的内置函数
函数 功能
len() 计算序列的长度,即返回序列中包含多少个元素。
max() 找出序列中的最大元素。注意,对序列使用 sum() 函数时,做加和操作的必须都是数字,不能是字符或 字符串,否则该函数将抛出异常,因为解释器无法判定是要做连接操作(+ 运算符可以连接两个序列),还是做加和操作。
min() 找出序列中的最小元素。
list() 将序列转换为列表。
str() 将序列转换为字符串。
sum() 计算元素和。
sorted() 对元素进行排序。
reversed() 反向序列中的元素。
enumerate() 将序列组合为一个索引序列,多用在 for 循环中
给个实例
#将字符串转换成列表
list1 = list("hello")
print(list1)
#将元组转换成列表
tuple1 = ('Python', 'Java', 'C++', 'JavaScript')
list2 = list(tuple1)
print(list2)
#将字典转换成列表
dict1 = {'a':100, 'b':42, 'c':9}
list3 = list(dict1)
print(list3)
#将区间转换成列表
range1 = range(1, 6)
list4 = list(range1)
print(list4)
#创建空列表
print(list())
结果为
['h', 'e', 'l', 'l', 'o']
['Python', 'Java', 'C++', 'JavaScript']
['a', 'b', 'c']
[1, 2, 3, 4, 5]
[]
三.列表中extend()方法添加元素
extend方法与append方法不同之处在于,extend()不会把列表和元组作为整体添加,而是把它们包含的元素逐个添加到列表中
l = ['Python', 'C++', 'Java']
#追加元素
l.extend('C')
print(l)
#追加元组,元祖被拆分成多个元素
t = ('JavaScript', 'C#', 'Go')
l.extend(t)
print(l)
#追加列表,列表也被拆分成多个元素
l.extend(['Ruby', 'SQL'])
print(l)
结果
['Python', 'C++', 'Java', 'C']
['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go']
['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go', 'Ruby', 'SQL']
四.list列表修改元素(空切片赋值)
等同于插入一组新元素,如下
nums = [40, 36, 89, 2, 36, 100, 7]
#在4个位置插入元素
nums[4: 4] = [-77, -52.5, 999]
print(nums)
---------------------------------
[40, 36, 89, 2, -77, -52.5, 999, 36, 100, 7]
不支持插入单个值,如下就是错误的
nums[4: 4] = -77
倘若使用字符串赋值,python会自动把字符串转化成序列,如下
s = list("Hello")
s[2:4] = "XYZ"
print(s)
-----------------------
['H', 'e', 'X', 'Y', 'Z', 'o']
五.列表查找元素
index()方法
语法格式为
listname.index(obj, start, end)
其中,listname 表示列表名称,obj 表示要查找的元素,start 表示起始位置,end 表示结束位置。
start 和 end 参数用来指定检索范围:
start 和 end 可以都不写,此时会检索整个列表;
如果只写 start 不写 end,那么表示检索从 start 到末尾的元素;
如果 start 和 end 都写,那么表示检索 start 和 end 之间的元素。
index() 方法会返回元素所在列表中的索引值。
实例
nums = [40, 36, 89, 2, 36, 100, 7, -20.5, -999]
#检索列表中的所有元素
print( nums.index(2) )
#检索3~7之间的元素
print( nums.index(100, 3, 7) )
#检索4之后的元素
print( nums.index(7, 4) )
#检索一个不存在的元素
print( nums.index(55) )
结果为
3
5
6
Traceback (most recent call last):
File "C:\Users\mozhiyan\Desktop\demo.py", line 9, in <module>
print( nums.index(55) )
ValueError: 55 is not in list
count()方法,用来统计某个元素在列表中出现的次数
基本语法格式为
listname.count(obj)
其中,listname 代表列表名,obj 表示要统计的元素。
如果 count() 返回 0,就表示列表中不存在该元素,所以 count() 也可以用来判断列表中的某个元素是否存在。
用法实例
nums = [40, 36, 89, 2, 36, 100, 7, -20.5, 36]
#统计元素出现的次数
print("36出现了%d次" % nums.count(36))
#判断一个元素是否存在
if nums.count(100):
print("列表中存在100这个元素")
else:
print("列表中不存在100这个元素")
运行结果
36出现了3次
列表中存在100这个元素
六.合并字符串之join方法
使用 join() 方法合并字符串时,它会将列表(或元组)中多个字符串采用固定的分隔符连接在一起。例如,字符串“c.biancheng.net”就可以看做是通过分隔符“.”将 ['c','biancheng','net'] 列表合并为一个字符串的结果。
语法格式如下
newstr = str.join(iterable)
其中各参数的含义是
1.newstr:表示合并后生成的新字符串;
2.str:用于指定合并时的分隔符;
3.iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。
实例
>>> list = ['c','biancheng','net']
>>> '.'.join(list)
'c.biancheng.net'
-------------------------
>>> dir = '','usr','bin','env'
>>> type(dir)
<class 'tuple'>
>>> '/'.join(dir)
'/usr/bin/env'
七.find()方法
find() 方法用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。
注意不包含返回-1!!!!
它的语法格式相对复杂了些
str.find(sub[,start[,end]])
此格式中各参数的含义如下:
str:表示原字符串;
sub:表示要检索的目标字符串;
start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;
end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾。