2017-08-02 54 views
-3

如何使用循环得到这个输出如何循环列表Python中的数据元组?

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]) 
+0

'为缩写,名字在:打印(F'{简称} {名称})' –

+0

@MaartenFabré我们假定你是OP的使用Python 3.6 – DeepSpace

+0

如果OP不知道如何打印这个文件,那么不应该很难找到这个文件,如果他不是 –

回答

2

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

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

结果:

AGR Anggora 
PRS Persia 
MNC Main Coon 
+0

我不确定,但可能不是某人(显然)刚刚开始使用Python的最佳选择:太神奇了 –

+1

@SergeyAntopolskiy我的答案演示了一个较不“神奇”的解决方案 - 分别打印每个值。 – StellarDoor5319

+0

很难知道什么是“魔法”。这总是取决于已知的主题。但是对于这个问题,拆包绝对是最短和最适合的解决方案,不是吗? – MSeifert

0

您可以使用下面的代码:

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

最好避免影响内置函数的变量名(例如'tuple')。 – MSeifert

+0

@MSeifert我通常这样做,这只是更好地说明了代码。我会改变它。 – StellarDoor5319

+0

嗨,先生,谢谢你的回答,如果a很多,怎么办? 所以我必须把b [数字]? – Oncom

1

可以使用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 
+0

嗨,先生,我已经找到了我的问题的答案。但非常感谢你帮助我:)后来,我会读'加入':) – Oncom

+0

你不需要迭代索引 –

+0

@MaartenFabré感谢您的提示。我调整了解决方案的发布代码,但最好没有索引。 – araknoid

1

,我发现我的解决方案。
它有点奇怪,但它的作品._。

在这里我的代码。

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

我想我的答案几乎与@ StellarDoor5319的答案一样。

感谢你们谁帮我这个问题:)