【问题标题】:How to looping data tuple in list Python?如何在列表 Python 中循环数据元组?
【发布时间】:2017-08-02 08:21:10
【问题描述】:

如何使用循环来获得这个输出

AGR Anggora  
PRS Persia  
MNC Main Coon

来自这个数据结构:

a = [('AGR', 'Anggora'), ('PRS', 'Persia'), ('MNC', 'Main Coon')]

我试过这样但失败了:

for i in range(len(a)):
   for z in range(len(a)):
       print(a[i][z], a[z][i])

【问题讨论】:

  • for abbreviation, name in a: print(f'{abbreviation} {name}')
  • @MaartenFabré 您假设 OP 使用的是 Python 3.6
  • 如果不是,OP 应该不难发现如何打印此内容
  • @MaartenFabré 但是最好提供一个适用于所有 Python 版本的通用答案。
  • 谢谢先生的回答,我稍后再试。也许@StellarDoor5319 的回答更适合我这样的新手嘿嘿嘿

标签: python list python-3.x loops


【解决方案1】:

您可以简单地从print 的列表中解压缩(使用*)每个元组:

a = [('AGR', 'Anggora'), ('PRS', 'Persia'), ('MNC', 'Main Coon')]
for tup in a:
    print(*tup)

结果:

AGR Anggora
PRS Persia
MNC Main Coon

【讨论】:

  • 我不确定,但对于(显然)刚开始使用 Python 的人来说,这可能不是最好的选择:太神奇了
  • @SergeyAntopolskiy 我的回答展示了一个不那么“神奇”的解决方案——分别打印每个值。
  • 很难知道什么是太“神奇”。这总是取决于已知的主题。但是对于这个问题,解包绝对是最短且最适合的解决方案,不是吗?
  • 谢谢先生的回答,但我不明白。你的代码是有效的,但我真的不明白 -_-
  • @Oncom 你可能想看看"Unpacking argument lists"。那里的 Python 文档涵盖了解包操作符 :)
【解决方案2】:

我找到了我的解决方案。
这有点奇怪,但它有效._.

这是我的代码。

for i in range(len(a)):
    print(a[i][0], a[i][1])

我认为我的答案与@StellarDoor5319 的答案几乎相同。

感谢你们帮助我解决这个问题:)

【讨论】:

    【解决方案3】:

    你可以使用str.join(iterable)函数:

    返回一个字符串,它是可迭代中字符串的串联。 如果有任何非字符串值,将引发 TypeError 可迭代的,包括字节对象。元素之间的分隔符是 提供此方法的字符串。

    您的代码将如下所示:

    a = [('AGR', 'Anggora'), ('PRS', 'Persia'), ('MNC', 'Main Coon')]
    
    for t in a:
        print(" ".join(t))
    

    输出将是:

    AGR Anggora
    PRS Persia
    MNC Main Coon
    

    【讨论】:

    • 您好,先生,我已经为我的问题找到了答案。但非常感谢你帮助我:) 稍后,我会读到join :)
    • 你不需要迭代索引
    • @MaartenFabré 感谢您的提示。我根据发布的代码调整了解决方案,但没有索引会更好。
    【解决方案4】:

    您可以使用以下代码:

    for b in a:
        print(b[0], b[1])
    

    【讨论】:

    • 最好避免使用影响内置函数的变量名(例如tuple)。
    • @MSeifert 我通常这样做,这只是更好地说明了代码。我会改的。
    • 嗨,先生,谢谢您的回答,如果 a 很多怎么办?所以我必须输入 b[number] ?
    • @Oncom 如果您的意思是a 中有 200 个元组,那么您可以简单地保留代码原样。如果您的意思是每个元组中有 200 项,请将 print 函数括号中的内容替换为 *b
    • @StellarDoor5319 嗯,我明白了。我现在明白了,先生。谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 2023-03-07
    • 2013-03-12
    • 2020-05-10
    • 2022-12-04
    • 1970-01-01
    • 2023-01-14
    相关资源
    最近更新 更多