如何接近这个循环?

2024-05-16 10:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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()。你知道吗


Tags: 字符串答案in程序forinputrawlen
1条回答
网友
1楼 · 发布于 2024-05-16 10:23:50

只需将所有输入放入一个列表中,然后使用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))

如果您不需要其他地方的单词列表,也可以将原始输入转换为一个集合:

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

相关问题 更多 >