python - for循环迭代元组

标签 python for-loop dictionary tuples

我是 Python 的初学者(20 年后又重新开始编码......)

我正在编写一个小脚本来学习不规则英语动词。 我创建了我的字典,它看起来像这样(它是法语)

verbes = {
"abide":["abode","abode","respecter / se conformer à"],
"arise":["arisen","arisen","survenir"],
}

例如,如果我想重复我正在做的动词:

for verb, (pret, past, trad) in verbes.items():
    print "Le verbe %s se conjugue au prétérit par %s, au participe passé par %s et se traduit par %s" % (verb, pret, past, trad)

好的。 然后我发现我可以导入 random 以在我的字典中选择一个随机键和值

rand = random.choice(verbes.items())

如果我打印 rand 我有一个键值 但如果我再次迭代,我有回溯:

Traceback (most recent call last):
File ".\exverbe1.py", line 209, in <module>
    for verb, (pret, past, trad) in rand.items(): AttributeError: 'tuple' object has no attribute 'items'

我还没有上“元组”课,但我试图将它变成列表、字典等,但没有成功。我查看了 stackoverflow 中的“for 循环元组”,但没有结果。所以现在我在 3 小时试图弄清楚后寻求帮助...... 谢谢

最佳答案

random.choice(verbes.items())verbes.items() 中随机选择一个元组。 rand 因此包含一项 - rand[0] 包含键,rand[1] 包含值。

如果您要做的是迭代值列表中的项目:

for val in rand[1]:
  print val

rand 元组解压成它的组成部分:

verb, (pret, past, trad)

verb 现在包含键,pretpasttrad 对应列表中的每个元素关键。

关于python - for循环迭代元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225027/

相关文章:

swift - 将函数映射到全局变量中快速错误 "Initializer ' init(_ : )' requires that ' [_ ]' conform to ' LosslessStringConvertible'"

Python:循环字典,一次两个键

python - 以百万为单位设置 y Axis

java - 输入验证使用数组和 for 循环检查重复项和格式

c - 为什么我的代码没有按顺序打印整个数组

c - 在C中循环帮助!

python - 在单独运行的 Python 脚本之间传递数据

python - 没有 "verbose"参数的 sklearn 模型的进度条

python - Cron 作业、任务队列或延迟任务?

python - 使用 Pandas 动态创建数据框