我有一个相当大的元组,其中包含:
[('and', 44023), ('cx', 37711), ('is', 36777) .... ]
我只想提取由单引号分隔的第一个字符串,因此上面元组的输出将为:
and
cx
is
我如何对此进行编码(在某种程度上内置了可扩展性)?
答案 0 :(得分:14)
[tup[0] for tup in mylist]
这使用列表理解。您也可以使用括号而不是外括号来使其成为生成器理解,因此评估将是懒惰的。
答案 1 :(得分:6)
只是为马修提供另一种解决方案。
tuples = [('and', 44023), ('cx', 37711), ('is', 36777) .... ]
strings, numbers = zip(*tuples)
如果您在某些时候决定将元组的两个部分放在不同的序列中(避免两个列表推导)。
答案 2 :(得分:1)
如果您想获得准确的输出
and
cx
is
然后结合字符串join
方法使用列表推导来加入换行符,就像这样
yourList = [('and', 44023), ('cx', 37711), ('is', 36777)]
print '\n'.join([tup[0] for tup in yourList])
答案 3 :(得分:0)
您可以在for循环中解压缩元组,如下所示:
for word, count in mytuple:
print "%r is used %i times!" % (word, count)
您可以在Python文档中广泛使用这个: http://docs.python.org/tutorial/datastructures.html#looping-technique