gpt4 book ai didi

python - TypeError : tuple indices must be integers, 不是元组

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:02 24 4
gpt4 key购买 nike

我在做一个骰子模拟器,在测试美观的时候遇到这个错误:

Traceback (most recent call last):
File "C:/Users/Jacob/Documents/Code/Test.py", line 22, in <module>
for j in DiceSides[i]:
TypeError: tuple indices must be integers, not tuple

这是我的代码:

Segments = {
0: '\t.-------.',
1: '\t| |',
2: '\t| O |',
3: '\t| O |',
4: '\t| O |',
5: '\t| O O |',
6: '\t| O O O |',
7: "\t'-------'"
}

DiceSides = (
(0, 1, 2, 1, 7),
(0, 3, 1, 4, 7),
(0, 4, 2, 3, 7),
(0, 5, 1, 5, 7),
(0, 5, 2, 5, 7),
(0, 6, 1, 6, 7)
)

for i in DiceSides:
for j in DiceSides[i]:
print(Segments[j])

我不明白这个TypeError,谁能给我解释一下这是什么问题?

最佳答案

您正在遍历 DiceSides元素:

for i in DiceSides:

i 在这里不是索引,它绑定(bind)到 DiceSides 的元组。 Python 中的 for 语句实际上是一个 Foreach loop ,您从可迭代对象中获取实际元素,而不是从可迭代对象中获取索引。

因此,因为 i 已经是一个元组,所以您可以直接遍历该值:

for i in DiceSides:
for j in i:
print(Segments[j])

另一种拼写方式是:

for i in DiceSides:
print(*(Segments[seg] for seg in i), sep='\n')

演示:

>>> for i in DiceSides:
... print(*(Segments[seg] for seg in i), sep='\n')
...
.-------.
| |
| O |
| |
'-------'
.-------.
| O |
| |
| O |
'-------'
.-------.
| O |
| O |
| O |
'-------'
.-------.
| O O |
| |
| O O |
'-------'
.-------.
| O O |
| O |
| O O |
'-------'
.-------.
| O O O |
| |
| O O O |
'-------'

关于python - TypeError : tuple indices must be integers, 不是元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com