python - 当你不能显式使用嵌套元组的索引时,如果你有元组的深度,如何引用一个值?
问题描述
假设表单中有一个元组
J = ((1),((2),((3),((4), (7,7)))))
并且您希望根据 for 循环中发生的迭代次数来更改 J 的索引值。
问题涉及用整数替换第二个元组,但由于每次引用的深度都会不同,因为 for 循环。
目标:使用元组中的值进行操作并将该元组替换为该值
我知道
list(J)[1][1][1][1]
将等于 (7,7) 我要更改的值。
但是说我有索引的深度 - 4。有没有办法把它作为一个变量和代码来引用
list(J)[1][1][1][1]
通过使用 4 而不是必须以硬编码的方式键入每个括号?原因是,我想在 for 循环中包含分配。
即类似的东西
list(J)"[1]"*depthvariable = changed value
或其他东西,这将等于
list(J)[1][1][1][1] = changed value
当depthvariable等于4时?
简而言之,有没有一种方法可以使用每次都会递增的整数,以便在代码本身内它可以做到这一点:
1次:
J[1]
2次:
J[1][1]
3次:
J[1][1][1]
如果我在 J 中使用 jelement,那么我会丢失整体变量。我不想在 J 元组中获取元素,我需要保留整体变量。我只是想更改 J 中的某些元素,但如果我正在查看的深度在 for 循环中每次都不同,我不确定如何编码。
我真正苦苦挣扎的部分是在每次深度变化时找到一个表达式来引用元组中的元素。因为它将涉及具有不同数量的括号。例如
J[1], J[1][1] etc.
我在这里先向您的帮助表示感谢!
编辑:重要的是我可以使用可变深度索引来更改 J 本身。
解决方案
使用循环。
J = ((1),((2),((3),((4), (7,7)))))
cur = J
depthvariable = 4
for _ in range(depthvariable):
cur = cur[1]
print(cur)
推荐阅读
- nested - 奥里利亚。为什么我的嵌套 repeat.for 选择不显示数据?
- mysql - Eclipselink:临时表的列长度和 mb4
- docker - SSL - 将受信任的根证书安装到 aspnetcore docker 容器
- xcode10 - Xcode10.0 (10A255) import intent xx.h 出现错误
- java - 在将一个文件的内容复制到另一个文件时,“'”正在转换为“’”
- vhdl - 为什么我会得到这个“4 个可能的定义”VHDL 连接错误
- angular - 在订阅方法中成功添加到数据库后,Angular 6 和 Angular 材质对话框未打开
- python - SQLAlchemy 查询数据库并显示为 html 表单
- android - Android Room - 关系和 LiveData
- php - 允许从 Woocommerce 的购物车中删除自动添加的产品