如何打印Python子字符串的一部分?

如何打印Python子字符串的一部分?,python,python-2.7,Python,Python 2.7,我有一个字符串数组,里面填充了更小的字符串数组,我把它们分成三组。看起来是这样的(除了更多): 我真正想要的只是这些数组中的第三项。我怎样才能只打印第三项呢?我的问题是,这是数组中的一个数组。与其他许多事情一样,解决方案是列表理解 array = [[],[] etc. #your array] print " ".join([item[2] for item in array]) >>>YYY.ORG;YYY.ORG_FLAGS=97570000000 YYY.ORG_PN=

我有一个字符串数组,里面填充了更小的字符串数组,我把它们分成三组。看起来是这样的(除了更多):


我真正想要的只是这些数组中的第三项。我怎样才能只打印第三项呢?我的问题是,这是数组中的一个数组。

与其他许多事情一样,解决方案是列表理解

array = [[],[] etc. #your array]
print " ".join([item[2] for item in array])
>>>YYY.ORG;YYY.ORG_FLAGS=97570000000 YYY.ORG_PN=XXXXXXXXXXX;YYY.ORG_FLAGS=ED100000
基本上,这里的关键部分是线路:

[item[2] for item in array]
它遍历数组并返回找到的每个对象的第三个值(索引为零)

对于回路等效值:

result = []
for item in array:
    result.append(item[2])

您可以尝试通过扩展构建元组

>>> conv3 = tuple(x[2] for x in conv)
如果你想打印它们,你可以使用

>>> ', '.join(x[2] for x in conv)

它能做你想要的吗?

基本上循环通过
conv
元组,并存储/打印每个元组中的第二个对象。它可以作为循环的传统
或使用列表理解来完成。试试这个-

>>> [i[2] for i in conv]
['YYY.ORG;YYY.ORG_FLAGS=97570000000', 'YYY.ORG_PN=XXXXXXXXXXX;YYY.ORG_FLAGS=ED100000']

为什么要构建元组?如果@PintSizeSlash3r只关心第三项,那么它可能会很有用。。。还要注意,构建元组和只打印第三项的语法是相同的。这是一个额外的把戏!免费!!也许我不清楚,相同的语法适用于任何iterable,我只是不清楚元组与问题的关系,或者为什么选择元组。在这个问题中,您是否看到了不可变类型的一些好处?是否有一些性能提升?我放了一个元组,因为@PintSizeSlash3r有一个元组。这不是性能问题(对于长度为2的元组来说,这可能是一个空洞的问题)。请注意,元组和列表之间的性能没有差异,因为它们是相同的数据结构(但具有不同的方法和属性)。无论如何,在您的答案中,不需要构建列表然后打印项目,这是一个性能问题!嗯,合情合理。我把清单打印出来是因为OP问我如何打印出来。这很有效!谢谢你给了我一个不太复杂的优雅的解决方案
>>> [i[2] for i in conv]
['YYY.ORG;YYY.ORG_FLAGS=97570000000', 'YYY.ORG_PN=XXXXXXXXXXX;YYY.ORG_FLAGS=ED100000']