初见Python解题之道(六)

Item

查找一列表包含的子串,并且按字典顺序排序

Contents

例子1:
a1 = [“arp”, “live”, “strong”]
a2 = [“lively”, “harp”, “sharp”, “armstrong”]
returns [“arp”, “live”, “strong”]
例子 2:
a1 = [“tarp”, “mice”, “bull”]
a2 = [“lively”, “alive”, “harp”, “sharp”, “armstrong”]
returns []

Knowledge

  1. 数据类型:字符串(string)
  2. 运算符:比较运算符、逻辑运算符、成员运算符
  3. 容器:列表(List)
  4. 其他:for多层循环体、字符串切片、sort方法

Me

  1. 建立嵌套循环,x遍历子组的元素,y遍历母组的元素;
  2. 关键环节:x应该等于y中的一部分;
  3. 关键特点:x长度是能获取的,那就利用字符串切片对应的切y,应该还需要再建立一个循环,也就是一个存储一个num值来不同位置(start、end)的切片,num的范围应该是0到y的长度值;
  4. 最后返回列表之前,需要按照升序排序。

Code

def in_array(array1, array2):
    r = []
    for x in array1:
        for y in array2:
            r += [x for num in range(0,len(y)) if x==y[num:num+len(x)] and x not in r]
    r_new = list(set(r))
    r_new.sort()
    return r_new
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾平安6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值