时间:2021-05-22
相同点
都属于序列类型的数据
所谓序列类型的数据,就是说它的每一个元素都可以通过指定一个编号,行话叫做“偏移量”的方式得到,而要想一次得到多个元素,可以使用切片。偏移量从0开始,总元素数减1结束。
例如:
>>> welcome_str = "Welcome you">>> welcome_str[0]'W'>>> welcome_str[1]'e'>>> welcome_str[len(welcome_str)-1]'u'>>> welcome_str[:4]'Welc'>>> a = "python">>> a*3'pythonpythonpython'>>> git_list = ["qiwsir","github","io"]>>> git_list[0]'qiwsir'>>> git_list[len(git_list)-1]'io'>>> git_list[0:2]['qiwsir', 'github']>>> b = ['qiwsir']>>> b*7['qiwsir', 'qiwsir', 'qiwsir', 'qiwsir', 'qiwsir', 'qiwsir', 'qiwsir']对于此类数据,下面一些操作是类似的:
>>> first = "hello,world">>> welcome_str'Welcome you'>>> first+","+welcome_str #用+号连接str'hello,world,Welcome you'>>> welcome_str #原来的str没有受到影响,即上面的+号连接后从新生成了一个字符串'Welcome you'>>> first'hello,world'>>> language = ['python']>>> git_list['qiwsir', 'github', 'io']>>> language + git_list #用+号连接list,得到一个新的list['python', 'qiwsir', 'github', 'io']>>> git_list['qiwsir', 'github', 'io']>>> language['python']>>> len(welcome_str) #得到字符数11>>> len(git_list) #得到元素数3区别
list和str的最大区别是:list是原处可以改变的,str则原处不可变。这个怎么理解呢?
首先看对list的这些操作,其特点是在原处将list进行了修改:
>>> git_list['qiwsir', 'github', 'io']>>> git_list.append("python")>>> git_list['qiwsir', 'github', 'io', 'python']>>> git_list[1] 'github'>>> git_list[1] = 'github.com'>>> git_list['qiwsir', 'github.com', 'io', 'python']>>> git_list.insert(1,"algorithm")>>> git_list['qiwsir', 'algorithm', 'github.com', 'io', 'python']>>> git_list.pop()'python'>>> del git_list[1]>>> git_list['qiwsir', 'github.com', 'io']以上这些操作,如果用在str上,都会报错,比如:
>>> welcome_str'Welcome you'>>> welcome_str[1] = 'E'Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError: 'str' object does not support item assignment>>> del welcome_str[1]Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError: 'str' object doesn't support item deletion>>> welcome_str.append("E")Traceback (most recent call last):File "<stdin>", line 1, in <module>AttributeError: 'str' object has no attribute 'append'如果要修改一个str,不得不这样。
>>> welcome_str'Welcome you'>>> welcome_str[0] + "E" + welcome_str[2:] #从新生成一个str'WElcome you'>>> welcome_str #对原来的没有任何影响'Welcome you'其实,在这种做法中,相当于从新生成了一个str。
多维list
这个也应该算是两者的区别了,虽然有点牵强。在str中,里面的每个元素只能是字符,在list中,元素可以是任何类型的数据。前面见的多是数字或者字符,其实还可以这样:
>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]>>> matrix[0][1]2>>> mult = [[1,2,3],['a','b','c'],'d','e']>>> mult[[1, 2, 3], ['a', 'b', 'c'], 'd', 'e']>>> mult[1][1]'b'>>> mult[2]'d'以上显示了多维list以及访问方式。在多维的情况下,里面的list也跟一个前面元素一样对待。
list和str转化
str.split()
这个内置函数实现的是将str转化为list。其中str=""是分隔符。
在看例子之前,请看官在交互模式下做如下操作:
>>>help(str.split)
得到了对这个内置函数的完整说明。特别强调:这是一种非常好的学习方法
不管是否看懂上面这段话,都可以看例子。还是希望看官能够理解上面的内容。
>>> line = "Hello.I am qiwsir.Welcome you." >>> line.split(".") #以英文的句点为分隔符,得到list['Hello', 'I am qiwsir', 'Welcome you', '']>>> line.split(".",1) #这个1,就是表达了上文中的:If maxsplit is given, at most maxsplit splits are done.['Hello', 'I am qiwsir.Welcome you.'] >>> name = "Albert Ainstain" #也有可能用空格来做为分隔符>>> name.split(" ")['Albert', 'Ainstain']"[sep]".join(list)join可以说是split的逆运算,举例:
>>> name['Albert', 'Ainstain']>>> "".join(name) #将list中的元素连接起来,但是没有连接符,表示一个一个紧邻着'AlbertAinstain'>>> ".".join(name) #以英文的句点做为连接分隔符'Albert.Ainstain'>>> " ".join(name) #以空格做为连接的分隔符'Albert Ainstain'声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、python数据插入问题par=[]forainparams:iftype(a)==list:par.append(‘“str(a)”')else:par.
如下所示:str_1='woshiyizhidadaniu/n'str_list=list(str_1)nPos=str_list.index('/')str_
Python中list,truple,str,dict这些都可以被迭代,但他们并不是迭代器。为什么?因为和迭代器相比有一个很大的不同,list/truple/m
在python中时常需要从字符串类型str中提取元素到一个数组list中,例如str是一个逗号隔开的姓名名单,需要将每个名字提取到一个元素为str型的list中
Python序列类型在本博客中,我们将学习探讨Python的各种“序列”类,内置的三大常用数据结构——列表类(list)、元组类(tuple)和字符串类(str