刷题过程中有时需要用到集合相关的数据结构,主要是list、set和dict。记录一下如何在刷题过程中应用这些结构。

一、list

1、列表的创建

1
2
3
4
5
nums = []
#快速创建队列并赋值
nums = [0 for _ in range(n)]
#快速创建二维数组,并赋值
nums = [[0 for _ in range(n)] for _ in range(m)]

2、列表的压入

1
2
nums.append(x)
nums.insert(index,x)#在index插入x

3、列表的删除

1
2
x = nums.pop(1)#删除index为1的元素
list.remove(2)#删除元素2的第一个匹配项

4、列表排序

1
2
nums.sort()
nums.sort(key=None,reverse=False)

5、反转列表

1
nums.reverse()

6、复制列表

1
nums.copy()

7、列表中某个元素出现的个数

1
nums.count(x)#x出现的次数

8、某个值的第一个匹配项的index

1
nums.index(x)

二、set

1、集合的创建

1
nums = {}

2、集合的压入

1
2
3
4
5
nums.add(x)
#高级方法
nums.update(x)#x可以是列表、元组、字典,且x可以又多个,用逗号隔开
nums.update([1,4],[5,6])
#{1, 3, 4, 5, 6}

3、集合的删除

1
2
nums.remove(x)#如果元素不存在会发生错误
nums.discard(x)#如果元素不存在不会发生错误

三、dict

1、字典的创建

1
nums = {}

2、字典的压入

1
nums[x] = y

3、字典的删除

1
del nums[x]

4、字典的遍历

4.1、遍历键
1
2
3
4
for key in nums:
print(nums[key])
#或者
for key in nums.keys():
4.2、遍历值
1
2
for value in nums.values():
print(value)
4.3、遍历键和值
1
for k,v in nums.items():