Python 元组 if 语句

新手上路,请多包涵

这里对 python 相当陌生,

我有一个 python 元组

reportTuple = (('Keith', 'Saturday', 10), ('Jane', 'Monday', 12))

我想打印姓名和号码,但前提是值为星期六。 (打印元素 0, 2 但仅当元素 1 value == Saturday 。)

有什么想法可以写一个 if 语句来抓住它们吗?

原文由 Isaac Huffman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 730
2 个回答

遍历数组,检查中心元素的值:

 for i in reportTuple: # Loop through each element of reportTuple
    if i[1] == "Saturday": # Is the day Saturday?
        print(i[0]) # Print name
        print(i[2]) # Print number

请问这里是什么问题?是for循环吗?

原文由 Beta Decay 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 Junapa 的修改更新了第一个列表:

您可以通过列表理解来做到这一点。

 print(*("{}: {}".format(name,number) for (name, day, number) in reportTuple if day == 'Saturday'))

将打印出来

Keith 10

如果您想将 if 语句的结果保存在列表中,那么您可以这样做

['{} {}'.format(name, number) for (name, day, number) in reportTuple if day == 'Saturday']

这将返回你

['Keith 10']

原文由 Aur 发布,翻译遵循 CC BY-SA 3.0 许可协议