Python 元组与列表

记录于 9.21.

元组

  • Tuple: 定义式使用 ()
  • 定义时可以不需要括号

# 元组不可修改,不可增删,只能查询值与index
mytuple = (1,2,3)
# 但有index,加减成为新元组
a = 1,2,3,4
b = 3,4,5,6
c = a + b
print(c)
output: 1,2,3,4,3,4,5,6
  • 可以使用max(),min()

# 可以使用上述函数得到最大最小值
a = 1,2,3,4,5
max(a)
min(a)
output: 5
1
  • 可以被截取,如[::-1]

# 截取得到的元组是新元组
a = 1,2,3,4
a[::-1]
a[1:3]
output: (4,3,2,1)
(2,3)
  • 有 .index() 方法,取得元素在元组里的下标

# 获取元组中元素的下标
a = 1,2,3,4
a.index(value)
output: None
  • 元组值可以分别同时赋值给多个元素

# 赋值说明
t = (1,2,3)
a,b,c = t
print(a)
print(b)
print(c)
output: 1
2
3

列表嵌套

  • 列表可以存任意类型的元素,也就可以存列表类型了

l1 = [1,2,3]
l2 = [4,5,6]
l3 = [7,8,9]
my_list = [l1,l2,l3]
print(my_list)
output: [
[1,2,3],
[4,5,6],
[7,8,9]
]
  • 使用[][]获取嵌套列表值

my_list[0][1]
$ 2
my_list[1][1]
$ 5
  • 可以使用List的所有函数,如.index()、.count()

print(my_list.index(l1))
print(my_list[1].index(2))
$ 0
1

Range 方法

  • range(value)

# 生成一个有序整数列表
a = list(range(100))
print(a)
$ [0,1,2,3,...,99]
  • range(start, end)

# 设置起始范围与终点范围
a = list(range(3,6))
print(a)
$ [3,4,5]
  • range(start,end,step)

# 设置步长
a = list(range(0,100,20))
print(a)
$ [0, 20, 40, 60, 80]

列表遍历

  • For循环,依次遍历index、value

nums = [1,2,3,4,5]
for i in nums:
	print(i)
$ 1
2
3
4
5

For循环及While循环


for item in nums:
	<code stock>

while <code stock>:
	<code block>
  • 调试时,代码当前高亮表示即将被执行

列表推导式

  • 实现对列表中每个元素做简单运算

l1 = [1,2,3,4,5]
l2 = [i * 2 for i in l1]
$ [2,4,6,8,10]
# [表达式 for 变量 in 列表]

# [表达式 for 变量 in 列表 if 筛选条件]
l = [i // 2 for i in range(10) if i % 2 == 0]
# 表示对0-9元素中的偶数除以2
$ [0,1,2,3,4]
  • 嵌套列表推导式

# 生成一个三行五列的List,行为[0,1,2,3,4]
[[j for j in range(5)] for i in range(3)]

字典基础

  • 创建字典

d = {} # 空字典
d = {key1: value1, key2: value2}

# 字典 Dict 是一种可变容器类型,可以保存任意对象
# 字典中的元素与键值对 key-value 的方式存储
d = {"北京": 22, "上海": 24}

# 字典的 键 必须是 唯一的不能重复
# 字典中的 键 必须是 不可变类型
  • 字典的增删改查

# 增加元素
d[key] = value
d.update({key: value})

# 删除元素
d.pop(key)
d.clear

# 更改元素
d[key] = new_value

# 查找元素
d.get(key, -1)
d.setdefault(key, -1)

字典补充


# 字典可以判断某个值是否在key中
dicta = {1:2, 3:4, 5:6}
dicta = dict(key1=value1,key2=value2)
print(if 3 in dicta)
$ true

# 如果需要判断某个值是否在value中,需要使用.values()方法

# 字典遍历,字典是可迭代对象
# 遍历字典的 key
d = {"小王": 86, "小红": 92, "小明": 85}
for i in d:
	print(i)    # 小王 小红 小明
	print(d[i]) #   86   92   85

# 或者用 .keys() / .values
for i in d.keys():
	print(i)
for i in d.values():
	print(i)

# 访问字典的键值对 .items()
for i,j in d.items():
	print(i)   # 键
	print(j)   # 值
赞赏