相同點(diǎn)
都屬于序列類(lèi)型的數(shù)據(jù)
所謂序列類(lèi)型的數(shù)據(jù),就是說(shuō)它的每一個(gè)元素都可以通過(guò)指定一個(gè)編號(hào),行話叫做“偏移量”的方式得到,而要想一次得到多個(gè)元素,可以使用切片。偏移量從0開(kāi)始,總元素?cái)?shù)減1結(jié)束。
例如:
>>> 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']
對(duì)于此類(lèi)數(shù)據(jù),下面一些操作是類(lèi)似的:
>>> first = "hello,world">>> welcome_str'Welcome you'>>> first+","+welcome_str #用+號(hào)連接str'hello,world,Welcome you'>>> welcome_str #原來(lái)的str沒(méi)有受到影響,即上面的+號(hào)連接后從新生成了一個(gè)字符串'Welcome you'>>> first'hello,world'>>> language = ['python']>>> git_list['qiwsir', 'github', 'io']>>> language + git_list #用+號(hào)連接list,得到一個(gè)新的list['python', 'qiwsir', 'github', 'io']>>> git_list['qiwsir', 'github', 'io']>>> language['python']>>> len(welcome_str) #得到字符數(shù)11>>> len(git_list) #得到元素?cái)?shù)3
區(qū)別
list和str的最大區(qū)別是:list是原處可以改變的,str則原處不可變。這個(gè)怎么理解呢?
首先看對(duì)list的這些操作,其特點(diǎn)是在原處將list進(jìn)行了修改:
>>> 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上,都會(huì)報(bào)錯(cuò),比如:
>>> 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'
新聞熱點(diǎn)
疑難解答
圖片精選