Python - 在一行中查找项目数

时间:2017-03-15 11:11:40

标签: python

我已经生成了一个项目集列表,如下所示:

('chicken',)  
('mango',)  
('chicken', 'apple')  
('chicken', 'rice')  
('chicken', 'beer')  
('mango', 'apple')  
('chicken', 'rice', 'apple')  
('beer', 'apple', 'chicken')  
('beer', 'rice', 'chicken')  
('beer', 'apple', 'chicken', 'rice')  
('rice',)  
('rice', 'apple')  
('beer', 'rice')  
('beer', 'rice', 'apple')  
('beer', 'apple')  
('apple',) 

我想知道如何使用python查找每行中的项目数。谁能建议一种方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

下面的代码很简单,用pythonic方式编写。

with open('input.txt', 'r') as f:

    for line in f.readlines():
        print len(line.strip()[1:-1].split(', '))

使用会使文件在块结束时自动关闭。

从文件中读取所有行并使用for循环迭代它们。

line.strip()删除了前导和尾随空格。

"(' chicken',)" - > "('鸡',)"

索引结果会删除括号

"('鸡',)" - > "'鸡'"

现在可以使用分割字符串。

答案 1 :(得分:0)

如果元组在列表中,您可以执行以下操作:

 map(len,TupleLst)

如果是文本文件:

f.open("document")
lines = f.readlines()
f.close()
map(lambda x: len(eval(x)),lines)