如何处理这个循环?

时间:2014-11-03 13:45:51

标签: python loops eval

t = input()

stringlist = [] 
setlist = []

for _ in range(t):
    stringlist.append(raw_input())


print stringlist


for h in stringlist:
    setlist.append((set(h)))

print setlist


print len((setlist[0] & setlist[1] & setlist[2]))

这是一个简单的程序,用于查找作为输入的单词之间的常用字母数。注意:此程序仅适用于3个输入。有人能指出我如何概括这段代码的最后一行以允许提供的输入数量是多少?如果你能指出我的答案而不是真正给出答案,我将不胜感激。

到目前为止,我曾考虑使用join()将输入字符串与分隔符合并为'&'然后在结果字符串上放置一个eval()。

1 个答案:

答案 0 :(得分:2)

只需将所有输入放入列表中,然后使用mapset.intersection

l = ["foo", "boo", "foobar"]
common = set.intersection(*map(set,l))
print common 
set(['o'])

完整代码:

t = int(raw_input())

string_list = [raw_input() for _ in range(t)]
common = set.intersection(*map(set,string_list))
print(len(common))

如果您不需要其他地方的单词列表,请将raw_input转换为一组:

string_list = [set(raw_input()) for _ in range(t)]
common = set.intersection(*string_list)