Python的数据结构中,string,tuple,list,dictionary,互相之间既有相似,又有区别,容易混淆。笔记一共两篇,本篇主要记录各自的基本用法与区别,下一篇《Python笔记:string,tuple,list,dictionary的区别(之二,高级用法与类型转换)》是他们的高级用法与类型转换的方法。
0.基本区别
Name | mutable | iterable | slicing | accessing | expressions |
---|---|---|---|---|---|
string | no | yes | yes | number index | “abcd” |
tuple | no | yes | yes | number index | (‘a’,‘b’,‘c’,‘d’,‘abcd’) |
list | yes | yes | yes | number index | [‘a’,‘b’,‘c’,‘d’,‘abcd’] |
dictionary | yes | yes | no | keys index | {‘1’:‘a’,‘2’:‘b’} |
1.string
string,字符串类型。python中没有单独的字符类型,一个字符也可以被看成是字符串类型,只有一个字符元素。单双引号无区别。
string,不可修改元素,immutable;可以用于循环条件,iterable;可以分片访问,slicing;通过数字索引来访问。从0开始,用-1表示最后一个元素。
x_str = 'abc'
y_str = 'defg'
Expression | Result | Description |
---|---|---|
x_str[0] = ‘b’ | error | immutable |
for x in x_str | a b c | iteration |
x_str[0:3] | ‘abc’ | slicing |
x_str[0] | ‘a’ | number indexing |
其他常见用法
Expression | Result | Description |
---|---|---|
len(x_str) | 3 | length |
x_str + y_str | ‘abcdefg’ | concatenation |
x_str * 2 | ‘abcabc’ | repetition |
‘a’ in x_str | True | membership |
2.tuple
tuple,不可修改元素,immutable;可以用于循环条件,iterable;可以分片访问,slicing;通过数字下标来访问。具体结果如下表所示。
x_tuple = ('Peggy',4)
y_tuple = ('Susie',3)
Expression | Result | Description |
---|---|---|
x_tuple[0] = ‘George’ | error | immutable |
for x in x_tuple | Peggy, 4 | iteration |
x_tuple[0:1] | (‘Peggy’,) 注意这个逗号 | slicing |
x_tuple[0] | ‘Peggy’ | number indexing |
其他常见用法
Expression | Result | Description |
---|---|---|
len(x_tuple) | 2 | length |
x_tuple + y_tuple | (‘Peggy’, 4, ‘Susie’, 3) | concatenation |
x_tuple * 2 | (‘Peggy’, 4, ‘Peggy’, 4) | repetition |
‘Peggy’ in x_tuple | True | membership |
3.list
list, 元素可修改,mutable;可以用于循环条件,iterable;可以分片访问,slicing;通过数字下标来访问。具体结果如下表所示。
x_list = ['Peggy',4]
y_list = ['Susie',3]
Expression | Result | Description |
---|---|---|
x_list[0] = ‘George’ | x_list = [‘George’,4] | mutable |
for x in x_tuple | George, 4 | iteration |
x_list[0:1] | [‘George’] 这里没有逗号 | slicing |
x_list[0] | ‘George’ | number indexing |
其他常见用法
Expression | Result | Description |
---|---|---|
len(x_tuple) | 2 | length |
x_list + y_list | [‘George’, 4, ‘Susie’, 3] | concatenation |
x_list * 2 | [‘George’, 4, ‘George’, 4] | repetition |
‘Peggy’ in x_list | False | membership |
4.dictionary
dictionary, 元素可修改,mutable;可以用于循环条件,iterable;无法分片访问。元素必须成对出现,names:keys,中间用冒号隔开,一对name-key是一个元素,元素之间使用逗号隔开,并且只能通过names索引keys,
x_dict = {'Peggy':4,'George':3}
y_dict = {'Susie':4,'Daniel':5}
常见用法中,dictionary 不能使用‘+’和‘*’进行扩展。其他用法详见后面代码部分。
Expression | Result | Description |
---|---|---|
len(‘x_dict’) | 2 | length |
‘Peggy’ in x_dict | True | membership |
分别按key访问values,keys和values
print(x_dict['Peggy'])
print(x_dict.keys())
print(x_dict.values())
4
dict_keys(['Peggy', 'George'])
dict_values([4, 3])
循环访问dictionary
for name, age in x_dict.items():
print(name)
print(age)
Peggy
4
George
3
增加元素
x_dict['Sussi'] = 5
print(x_dict)
{'Peggy': 4, 'George': 3, 'Sussi': 5}
###参考链接
- Python - Lists https://www.tutorialspoint.com/python/python_lists.htm