这就是我的尝试:
我有一个文本文件,其中包含几行输入格式 - parameter value
该文本文件逐行读取,参数&值被列为列表元素。
a = []
for line in fileinput.input():
a.append((line.strip()).split(' '))
print a
输出:
[['parameter1': 'value1'], ['parameter2': 'value2'], ['parameter3': 'value3']]
我现在正试图移动这些值 - value1,value2,value3,&所以 - 进入新的名单。
我无法弄清楚这一点。复制功能将复制完整列表。我是否使用循环来迭代这些值并附加到新列表?在从文本文件中读取时,是否可以将这些值直接添加到新列表中。?
答案 0 :(得分:2)
你可以用列表理解来做到这一点:
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
我必须承认,在我看到闪光灯的回答之前,我甚至没有注意到。
答案 1 :(得分:1)
('http://link1.com', 'title1')
('http://link2.com', 'title2')
('http://link3.com', 'title3')
('http://link4.com', 'title4')
只会将每行的b.append(line.split(' ')[1])
附加到您在循环之前准备的另一个列表value
。
问题的程序输出将是
b
顺便说一句...