如何获取列表中字符串的公共前缀

Nic*_* An 0 python string prefix

我需要知道如何识别列表中字符串的前缀。例如,

list = ['nomad', 'normal', 'nonstop', 'noob']
Run Code Online (Sandbox Code Playgroud)

它的答案应该是“否”,因为列表中的每个字符串都以“否”开头

我想知道是否有一种方法可以同时迭代列表中字符串中的每个字母并检查每个字母是否彼此相同。

Red*_*ite 9

使用os.path.commonprefix它会做你想要的。

In [1]: list = ['nomad', 'normal', 'nonstop', 'noob']

In [2]: import os.path as p

In [3]: p.commonprefix(list)
Out[3]: 'no'
Run Code Online (Sandbox Code Playgroud)

顺便说一句,将列表命名为“列表”将无法访问list该类,因此我建议使用不同的变量名称。


Jos*_*hua 6

这是一个没有库的代码:

for i in range(len(l[0])):
    if False in [l[0][:i] == j[:i] for j in l]:
        print(l[0][:i-1])
        break
Run Code Online (Sandbox Code Playgroud)

给出输出:

no
Run Code Online (Sandbox Code Playgroud)