sách gpt4 ai đã đi

Python - Vòng lặp nâng cao

In lại 作者:太空宇宙 更新时间:2023-11-04 08:15:29 33 4
mua khóa gpt4 Nike

我有一个列表列表的列表(最后一个列表并不重要)

data = [[[['f', 0], 'C'], [['X', 0], 'X']],
[[['s', 1], 'X'], [['X', 0], 'X']]]

它本质上是一张有 4 个象限的 map 。目前我正在遍历它并用

更新它
for i in data:
for x in i:
if x[0][0] == 'f':
x[0][1] += 1

但我想检查一个单元格的邻居。有没有办法做到这一点,当以此迭代时,还是我必须决定使用整数键在列表中移动?

1 Câu trả lời

是的,除非你写了一些更复杂的东西,允许你遍历元素,也给你他们的邻居,否则你将不得不使用元素的绝对寻址。

如果您确定总是使用列表的列表(即不仅仅是一些其他可迭代对象),您当然可以使用 enumerate 来获取索引 元素本身很快:

for i, row in enumerate(data):
for j, cell in enumerate(row):
# now you can access data[i][j-1], data[i+1][j] etc

所以,我首先提到了“更复杂”的事情,你可以做的是制作一个自动迭代单元格的生成器,返回额外的数据,例如左邻居或其他东西。

def myLeftNeighborGenerator(data):
for i, row in enumerate(data):
for j, cell in enumerate(row):
leftNeighbor = data[i][j-1] if j > 0 else None
yield cell, leftNeighbor

然后你就可以使用那个生成器来神奇地获取你的数据了:

for x, left in myLeftNeighborGenerator(data):
if x[0][0] == 'f':
x[0][1] += 1
if left is not None:
# whatever

关于python - 高级 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15302386/

33 4 0
Bài viết được đề xuất: Python将包含列表的字典对象转换为包含字典的列表
Bài viết được đề xuất: java - 在 Eclipse Virgo 中选择 Sun JAX-WS 实现而不是 CXF 实现
Bài viết được đề xuất: java - 如何封装参数化消息的逻辑?
Bài viết được đề xuất: html - MDL 卡未与父卡对齐
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com