这是我正在尝试的:
我有一个文本文件,格式为几行输入- parameter value
逐行读取该文本文件,并将参数和值作为列表元素。
a = []
for line in fileinput.input():
a.append((line.strip()).split(' '))
print a
输出:
[['parameter1': 'value1'], ['parameter2': 'value2'], ['parameter3': 'value3']]
我现在正在尝试将这些值-value1,value2,value3等移至新列表中。
我不知道这一点。复制功能将复制完整列表。我是否使用循环遍历这些值并追加到新列表?从文本文件读取时,是否可以将这些值直接添加到新列表中?
您可以通过列表理解来做到这一点:
new_a = [sub[1] for sub in a]
您也可以这样做:
import operator
new_a = list(map(operator.itemgetter(1), a))
等效的是使用一个lambda
函数:
new_a = list(map(lambda x: x[1], a))
如评论中所述,您也可以执行以下操作:
new_a = [value for parameter, value in a]
如果其中任何一个列表a
的长度都不为2 ,则最后一个将引发错误。根据您的需求,这可能是好事,也可能是坏事。
您也可以只使用for
循环仅添加第二个元素:
a = []
for line in fileinput.input():
a.append(line.split(' ')[1])
print a
我必须承认,直到我看到flaschbier的回答之前,我什至没有注意到这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句