一、序列
序列:数学上,序列是被排成一列的对象(或事件);这样,每个元素不是在其他元素之前,就是在其他元素之后。这里,元素之间的顺序非常重要。(来自《维基百科》)
字符串和列表都是序列。
二、列表和字符串的比较
列表是可以原地修改的
>>> a = [1,2,3]
>>> id(a) #表示该列表在内存中的地址
44379792
>>> a.append(4) #没有返回值,这是原地修改的外在表现
>>>> a
[1, 2, 3, 4]
>>> id(a) #说明该列表在内存中的地址并没有发生变化
44379792
>>> a[1] = 9
>>> a
[1, 9, 3, 4] #说明该列表是可以修改的
>>>
字符串是不可改变的
>>> b = "python"
>>> b[1] = "w" #说明字符串是不可修改的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> b = "python"
>>> c = b[0] + "w" + b[2:] #若确实修改,可参照该语句
>>> c
'pwthon'
>>> b #b的值没有变化
'python'
>>>
其他的区别:
>>> m = [[1,2,3],[4,5,6],[7,8,9]] #多维列表
>>> m[1]
[4, 5, 6]
>>> m[1][0]
4
>>>
列表有多维列表,字符串没有多维字符串
List()和str()的使用
列表转换为字符串:
>>> b = ['p', 'y', 't', 'h', 'o', 'n']
>>> "".join(b) #使用join()转换
'python'
>>>
>>>
>>> "-".join(b) #使用join()转换
'p-y-t-h-o-n'
>>>
字符串转换为列表:
>>> b = 'python'
>>> list(b) #使用list()转换
['p', 'y', 't', 'h', 'o', 'n']
>>>
>>>
>>> a = "Python is good"
>>> a.split(" ") #使用split()转换
['Python', 'is', 'good']
>>>