Python 求字符串的最长公共前缀

python 压包和解包

压包zip()----可以把两个list变成1个list;

eg:

s1 = ‘abcde’

s2 = ‘fgh’

for i in zip(s1,s2):

print(i)
1
#输出结果

#(‘a’, ‘f’)

#(‘b’, ‘g’)

#(‘c’, ‘h’)

压包练习:

在迭代 [‘Adam’, ‘Lisa’, ‘Bart’, ‘Paul’] 时,如果我们想打印出名次 - 名字(名次从1开始),请考虑如何在迭代中打印出来。

思路:把名次、名字分别放在1个list中,使用zip()变成1个list; range生成名次的列表

L= [‘Adam’, ‘Lisa’, ‘Bart’, ‘Paul’]

for index, name in zip(range(1,len(L)+1), L):

​ print(index, ‘-’, name) #结果是

1 - Adam
2 - Lisa
3 - Bart
4 - Paul
1
2
3
4
解包 *str

eg:

s1 =[“flower”,“flow”,“flight”]

print(*s1) #输出flower flow flight

s2 = “flower”

print(*s2)#输出f l o w e r

压包和解包结合

练习:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。 示例 1:

输入: [“flower”,“flow”,“flight”]
输出: “fl”

def long_str(li):    
    result=''    
    for i in zip(*li):        
        if len(set(i))==1:            
            result +=i[0]        
        else:            
            break    
    return result

list=["floee","florr","flpp"]
print(long_str(list))

你可能感兴趣的:(Python,Python基础)