python实现取出一个列表或者多个列表中的公共前缀

背景:给定一个可迭代对象,或者是多个可迭代对象,取出公共的前缀

献上代码:

def Solution(list):
    str = ''
    for i in zip(*list):
        if len(set(i))==1:
            str += i[0]
        else:
            return str
    return str

if __name__ == '__main__':
    list = ["flower","flow","flight"]
    list1 = ["flower","fow","flight"]
    list2 = ["klower","fow","flight"]
    str = Solution(list)
    print(str)

执行结果是:

实现逻辑:

1、使用zip(*list)函数,取出迭代对象中的可迭代对象的同一位置的元素组成元祖。

2、将得到的元祖去重,使用set()函数,如果得到的元组长度为1,说明该元祖中的元素为公共前缀,将其添加到定义好的空字符串上,以此类推,后续得到元组长度为1的也添加到该字符串中

3、将得到最终的公共前缀字符串进行返回。

 

如果想获取好多个可迭代对象的公共前缀。可以将代码的入参进行增加。

在红框框的地方进行更改,得到的是空,因为没有公共前缀。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python,可以使用字符串的切片操作来截取子字符串。具体来说,可以使用以下语法: ```python string[start:end:step] ``` 其,start表示起始位置(包含该位置的字符),end表示结束位置(不包含该位置的字符),step表示步长(默认为1)。例如,截取字符串的前5个字符可以这样写: ```python string[:5] ``` 截取字符串的第3个字符到第6个字符可以这样写: ```python string[2:6] ``` 截取字符串的最后3个字符可以这样写: ```python string[-3:] ``` 还可以使用步长参数截取每隔一定距离的字符,例如,截取字符串的偶数位置字符可以这样写: ```python string[::2] ``` ### 回答2: 在Python字符串截取可以通过使用切片操作来实现。切片操作使用方括号 [] 来完成,可以使用一个索引或者是两个索引,其用冒号 ":" 分隔。 当使用一个索引时,可以通过指定字符串的位置来截取其一个字符。索引从0开始,所以第一个字符的索引是0,第二个字符的索引是1,以此类推。 例如,要截取字符串 "Hello, World!" 的第一个字符,可以使用以下代码:string = "Hello, World!" first_character = string[0] print(first_character) 结果将输出:H 使用两个索引时,可以指定截取的起始位置和结束位置,其起始位置是包含在截取结果的,但结束位置是不包含在截取结果的。 例如,要截取字符串 "Hello, World!" 的 "Hello",可以使用以下代码:string = "Hello, World!" hello = string[0:5] print(hello) 结果将输出:Hello 如果不指定起始位置,默认从字符串开头开始截取。如果不指定结束位置,默认截取到字符串的末尾。 例如,要截取字符串 "Hello, World!" 的 "World!",可以使用以下代码:string = "Hello, World!" world = string[7:] print(world) 结果将输出:World! 需要注意的是,当使用切片操作截取字符串时,原始字符串是不可变的,切片操作返回的是一个新的字符串。 ### 回答3: 在Python,可以使用切片操作来实现字符串的截取。切片操作通过在方括号指定起始位置和结束位置来提取出字符串的一部分。例如,对于一个字符串s,可以使用s[start:end]来截取出从start位置到end位置之间的子字符串。 需要注意的是,切片操作是左闭右开的,即包括起始位置所对应的字符,但不包括结束位置所对应的字符。如果不指定起始位置,则默认从字符串开头开始截取;如果不指定结束位置,则默认截取到字符串的末尾。 此外,还可以使用负数来表示从字符串末尾开始的位置。例如,s[-1]表示字符串的最后一个字符,s[-2]表示倒数第二个字符,以此类推。同样,可以通过负数来指定切片操作的起始位置和结束位置。 下面是一些使用切片操作的示例: - s[0:3]表示截取字符串s的前三个字符。 - s[:3]和s[0:3]等价,都表示截取字符串s的前三个字符。 - s[-3:]表示截取字符串s的最后三个字符。 - s[2:-2]表示截取从字符串s的第三个字符到倒数第三个字符之间的子字符串。 除了使用切片操作,还可以使用其他方法来截取字符串。例如,通过调用字符串的split()方法将字符串按照指定的分隔符分割成多个字符串,然后取所需要的子字符串。另外,还可以使用正则表达式来匹配和提取需要的字符串。 总之,Python有多种方法可以实现字符串的截取,最常用的是切片操作。掌握这些方法,可以方便地处理字符串,提取所需的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值