Python 数据结构

本文详细介绍了Python中的列表、集合和字典数据结构。重点讲解了列表的创建、遍历、常用方法,如append、extend、remove等;集合的交、并、差运算;以及字典的创建、访问键值对的方法。通过实例展示了如何利用列表推导式进行高效操作,并提供了遍历和组合遍历的示例。此外,还探讨了列表、集合和字典在数据处理中的应用,如作为栈和队列的实现。
摘要由CSDN通过智能技术生成

1. List

1.1 列表特性

列表支持迭代,按索引访问:

myList = [1, 2, 3, 4]
for elem in myList:
    print(elem)

引用类型:列表名是列表的引用,删除列表名后列表仍然存在:

a = [1, 2, 3, 4]
b = a

del a
print(b)	# [1, 2, 3, 4]

要删除列表本身,可以使用 del a[:]

a = [1, 2, 3, 4]
del a[:]
print(a)	# []

1.2 创建列表

创建 1 维列表和 2 维列表:

a = [0, 1, 2, 3]
b = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

使用 列表推导式

squeres = [x**2 for x in range(0, 5)]
combination = [(x, y) for x in [1, 2, 3] for y in [1, 3] if x != y]

如通过列表推导式将列表转置:

a = [[1, 2, 3],	[4, 5, 6], [7, 8, 9]]
a = [[row[i] for row in a] for i in range(0, len(a[0]))]
print(a)

1.3 常用方法:

list.append(x)	# 在 list 尾部添加元素 x
list.extend(L)	# 在 list 尾部添加列表 L
list.insert(i, x)	# 在位置 i 处插入元素 x
list.remove(x)	# 删除第一个值为 x 的元素,不存在则报错
list.pop([i])	# 删除位置 i 处的元素并返回
list.clear()	# 清空列表,相当与 del list[:]
list.count(x)	# 返回元素 x 出现的次数
list.sort()		# 就地排序
list.reverse()	# 就地逆序

list 可以用作栈或队列:

# stack
a = [1, 2, 3]
a.append(4)
while a:
	a.pop()
# queue
a = [1, 2, 3]
a.append()
a.pop(0)

1.4 遍历

使用下标 / in 遍历:

a = [1, 5, 7, 3, 4, 9]
for i in range(0, len(a)):
	print(a[i])
    
for i in a:
	print(i)

可以使用 zip() 将两个列表合并遍历:

names = ['Tom', 'Carry', 'Dom']
species = ['cat', 'dog', 'squerra']
for name, species in zip(names, species):
	print(name, species)


2. Set

set 是一个无序、元素不重复的集合

可以对 set 做与、或、想减等运算:

a = set([1, 8, 3, 2])
b = set([1, 5, 8])
print(a)		# {8, 1, 2, 3}
print(a & b)	# {8, 1}
print(a | b)	# {1, 2, 3, 5, 8}
print(a - b)	# {2, 3}


3. dict

3.1 创建字典

pets = {
	'cat': 'Tom',
	'mouse': 'Jerry',
	'dog': 'Dofphy'
}

dict 可以直接从 key-value 中创建字典:

d = dict([('a', 1), ('b', 2), ('c', 3)])

也可以使用推导式创建:

squares = {x: x**2 for x in range(0, 5)}

3.2 访问键值对

可以直接使用类似列表的索引:

pets = {
	'cat': 'Tom',
	'mouse': 'Jerry',
	'dog': 'Dofphy'
}
print(type(pets['cat']))	# str

可以使用 dict.items(), dict.kes()dict.values() 遍历:

for species, name in pets.items():
	print(species, name)

for species in pets.keys():
	print(species)

for name in pets.values():
	print(name)

End …

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值