[python基础练习题]根据以下规律构造一个函数根据input,返回output, 该函数能应对各种情况,包括引入新字母和新单词还有新长度情况

题目:

根据以下规律构造一个函数根据input,返回output, 该函数能应对各种情况,包括引入新字母和新单词还有新长度情况

input:pattern = “abaa”, str = “apple orange apple apple”
output: true

整体思路:

首先可以看到input里面是字符类型,用列表可以识别出来每个字符,同时我们只需要双引号里面的内容进行匹配。
推荐思路:

  1. 识别逗号,把匹配规则和匹配对象分开成两个;
  2. 识别等于号=然后提取=后面的;
  3. 识别双引号里面的内容进行对应

核心代码

第一步

parttern = input_str.split(",")[0]
p_str = input_str.split(",")[1]

第二步:

a = list(parttern.split("=")[1][1:][1: -1])
b = p_str.split("=")[1][1:][1: -1].split(" ")
if len(a) != len(b):
    print("字符串格式输入错误,请重新输入")
else:
    a_dict = {}

第三步:

for index, a_n in enumerate(a):
    a_lists = a_dict.get(a_n)
    if a_lists is None:
       a_dict[a_n] = [index]
    else:
       a_lists.append(index)

for key in a_dict.keys():
   value = a_dict.get(key)[0]
   simiary = b[value]
for index, b_n in enumerate(b):
   if b_n == simiary:
      b[index] = key

运行结果:

在这里插入图片描述

CSDN我只有传文章才会上线,有什么问题可以加我的微信:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值