Python3 中有四种标准的数据结构:
Python 3 的六个标准数据类型中:
test_list = ['abc', 111, 0.12345, '列表', True]
test_sub_list = [-1, 111, 1.111, -1.111]
# 元素索引
print(test_list) # 输出完整列表
print(test_list[0]) # 输出列表第一个元素
print(test_list[1:3]) # 从第二个开始输出到第三个元素
print(test_list[2:]) # 输出从第三个元素开始的所有元素
print(test_list[2:-2]) # 输出从第三个元素开始至倒数第二个的所有元素
print(test_sub_list * 2) # 输出两次列表
print(test_list + test_sub_list) # 连接列表
print(len(test_list)) # 列表大小
'''
['abc', 111, 0.12345, '列表', True]
abc
[111, 0.12345]
[0.12345, '列表', True]
[0.12345]
[-1, 111, 1.111, -1.111, -1, 111, 1.111, -1.111]
['abc', 111, 0.12345, '列表', True, -1, 111, 1.111, -1.111]
5
'''
列表内置函数:
方法 | 描述 |
---|---|
list.append(x) | 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。 |
list.extend(L) | 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。 |
list.insert(i, x) | 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。 |
list.remove(x) | 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。 |
list.pop([i]) | 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。) |
list.clear() | 移除列表中的所有项,等于del a[:]。 |
list.index(x) | 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。 |
list.count(x) | 返回 x 在列表中出现的次数。 |
list.sort() | 对列表中的元素进行排序。 |
list.reverse() | 倒排列表中的元素。 |
list.copy() | 返回列表的浅复制,等于a[:]。 |
列表内置函数使用实例:
test_list = [1, 111, 2.2, 3, 4]
test_sub_list = [-1, 111, 1.111, -1.111]
# 内置函数
test_list.append(1)
print(test_list) # 把一个元素添加到列表的结尾。
test_list.insert(0, 1.1) # 在指定位置插入一个元素。
test_list.extend(test_sub_list) # 通过添加指定列表的所有元素来扩充列表。
print(test_list) # 在指定位置插入一个元素。
print(test_list.pop(1)) # 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。
print(test_list.index(111)) # 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
print(test_list.count(111)) # 返回 x 在列表中出现的次数。
test_list.remove(True) # 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
print(test_list)
test_list.reverse() # 倒排列表中的元素。
print(test_list)
列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。
# 将列表当做堆栈使用
stack = [1, 2, 3, 4, 5]
stack.append(6)
print(stack)
print(stack.pop())
print(stack)
print(stack.pop())
print(stack.pop())
print(stack)
也可以把列表当做队列用,只是在队列里第一加入的元素,第一个取出来;但是拿列表用作这样的目的效率不高。在列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度却不快(因为所有其他的元素都得一个一个地移动)。
与列表类似,不同之处在于元组的元素不能修改。元组使用小括号 ( ),列表使用方括号 [ ]。元素之间都用逗号隔开。
与字符串一样,元组的元素不能修改。
tupleTest = () # 空元组
print(tupleTest)
tupleTest = (20,) # 一个元素,需要在元素后添加逗号
print(tupleTest)
tupleTest = ('abc', 111, 0.12345, '列表', True)
tinyTuple = (123, 'TEST')
print(tupleTest) # 输出完整元组
print(tupleTest[0]) # 输出元组的第一个元素
print(tupleTest[1:3]) # 输出从第二个元素开始到第三个元素
print(tupleTest[2:]) # 输出从第三个元素开始的所有元素
print(tinyTuple * 2) # 输出两次元组
print(tupleTest + tinyTuple) # 连接元组
tupleList = (tupleTest, tinyTuple)
print(tupleList)
# tupleTest[0] = 11 # 修改元组元素的操作是非法的:TypeError: 'tupleTest' object does not support item assignment
'''
()
(20,)
('abc', 111, 0.12345, '列表', True)
abc
(111, 0.12345)
(0.12345, '列表', True)
(123, 'TEST', 123, 'TEST')
('abc', 111, 0.12345, '列表', True, 123, 'TEST')
(('abc', 111, 0.12345, '列表', True), (123, 'TEST'))
'''
由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
sites = {'Google', 'Taobao', 'WeiXin', 'Facebook', 'Zhihu', 'Baidu', 'WeiXin'}
print(sites) # 输出集合,重复的元素被自动去掉
"""
{'Zhihu', 'Taobao', 'Google', 'WeiXin', 'Facebook', 'Baidu'}
"""
集合运算:
# set可以进行集合运算
a = set('Gooooooooooooogllleee')
b = set('Taobao Gou')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
"""
{'e', 'l', 'g', 'G', 'o'}
{'e', 'l', 'g'}
{'e', 'a', 'u', 'l', 'g', 'G', 'b', 'T', ' ', 'o'}
{'G', 'o'}
{'e', 'l', 'g', 'a', 'u', 'b', 'T', ' '}
"""
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
dict = {} # 空字典
dict['one'] = "1 - Python学习"
dict[2] = "2 - Python编程"
tinyDict = {'name': 'Python', 'code': 1, 'site': 'www.baidu.com'}
print(dict['one']) # 输出键为 'one' 的值
print(dict[2]) # 输出键为 2 的值
print(tinyDict) # 输出完整的字典
print(tinyDict.keys()) # 输出所有键
print(tinyDict.values()) # 输出所有值
'''
1 - Python学习
2 - Python编程
{'name': 'Python', 'code': 1, 'site': 'www.baidu.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['Python', 1, 'www.baidu.com'])
'''