列表
Python最基本数据结构,每个元素分配位置数字-索引,索引从0开始。
常用方法
append() insert() extend() pop() sort()
list1 = [1,2,3]
# 在列表末尾添加新的对象
list1.append(4) # [1,2,3,4]
# 统计某个元素在列表中出现的次数
list1.count(1) # 1
# 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list1.extend([5,6]) # [1,2,3,4, 5,6]
# 从列表中找出某个值第一个匹配项的索引位置 list.index(x[, start[, end]])
list1.index(3) # 2
# 将对象插入列表
list1.insert(2, 4) # [1,2,4,3,4, 5,6]
# 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list1.pop() # [1,2,4,3,4, 5]
list1.pop(2) # [1,2,3,4, 5] 移除索引为2的元素 索引匹配
# 移除列表中某个值的第一个匹配项
list1.remove(3) # [1,2,4, 5] 移除数字3 内容匹配
# 反向列表中元素
list1.reverse() # [5,4,2,1]
# 对原列表进行排序
list1.sort(cmp=None, key=None, reverse=False)
# reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
常用函数
cmp(list1, list2) # 比较两个列表的元素
len(list1) # 列表元素个数
max(list1) # 返回列表元素最大值
min(list1) # 返回列表元素最小值
list(list1) # 将元组转换为列表
切片
前闭后开区间选择
list1 = [1,2,4, 5,6]
a = list1[1:3] # a = [2,4]
切片参数可以缺省
a = list1[:3] # a = [1,2,4]
a = list1[3:] # a = [5,6]
字典
Python 中list 是C 语言实现的动态数组。
Python 字典是C语言实现的 哈希表。
key-value键值对,键唯一且不可变,可以是字符串,数字或元组;value可以是任何数值类型
dict1 = {'1':'a', '2':'b','3':'c'}
dict1['1'] = 'aa' # 当键存在,更新原来的value值
dict1['4'] = 'd' # 当键不存在,追加新的键值对
del dict1['1'] # 删除键是'1'的条目
dict1.clear() # 清空字典所有条目
del dict1 # 删除字典
内置函数
cmp(dict1, dict2) # 比较两个字典元素。
len(dict) # 计算字典元素个数,即键的总数。
str(dict) # 输出字典可打印的字符串表示。
type(variable) # 返回输入的变量类型,如果变量是字典就返回字典类型。
常用方法
dict1 = {'1':'a', '2':'b','3':'c'}
dict1.keys() # 列表返回所有键
dict1.values() # 列表返回所有值
dict1.items() # 列表返回 key,value 常用for循环遍历键值对
dict1.update({'4':'d'}) # 把字典键/值对更新到dict1里
字典与列表的区别
和list比较,dict有以下几个特点:
1.查找和插入的速度极快,不会随着key的增加而增加。
2.需要占用大量的内存,内存浪费多。【key-value两个值存储】
而list相反:
1.查找和插入的时间随着元素的增加而增加。
2.占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
https://www.py.cn/jishu/jichu/12673.html
https://www.zhihu.com/question/58099937
元组
一旦初始化就不可变,和字符串,数字性质一致
元组中只包含一个元素时,需要在元素后面添加逗号
下标索引访问元组的值,可切片
tup1 = (50,)
元组元素不可修改,可以连接组合
创建一个新的元组
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
tup3 = tup1 + tup2 # (12, 34.56, 'abc', 'xyz')
集合
集合元素不可重复,会自动去重, 可用于列表去重
set(['a','b','b','b','c'])
out:{'a','b','c'}