每日算法-Linux中变量的替换
Linux shell脚本中${xxx}是代表变量xxx的值,给定一个字符串中存在一个或者多个${xxx},需要将字符串中的所有${xxx} 替换成实际的值
输入:
第一行为赋值语句的行数
第二行开始后面的每一行为一个变量的赋值语句,左边是变量名,右边是变量的值,变量的值是纯字符串,且整个一行都没有空格,${xxx}代表变量xxx的值
示例:
输入:
4
xxx=lyf/${ttt}/test
ttt=www
yyy=seeyou
aa=/aaa/${xxx}/bbb/${yyy}/ccc
说明:第一行4为输入总行数,其余为输入字符串,
期望结果:将最后一行等号右边的实际值输出
解析:
1.先获取第一行输入的行数,然后根据行数,采集后面输入的字符串,并将字符串中的key和value分别保存起来
2.获取最后一行等号右边的值,然后将变量转化为实际的值,直到字符串里面不包含${}
Python3第一次输出代码如下:
A=input() list1=[] list2=[] for a in range(int(A)): B=input() list1.append(B.split('=')[0]) list2.append(B.split('=')[1]) result=list2[-1] while '$' in result: for a in range(int(A)): repalace_value = "${" + list1[a] + "}" if repalace_value in result: result = result.replace(repalace_value, list2[a]) print(result)
考虑到性能,把for循环优化掉
A=input() list1=[] list2=[] for a in range(int(A)): B=input() list1.append(B.split('=')[0]) list2.append(B.split('=')[1]) result=list2[-1] while '$' in result: repalace_value = result.split('{')[1].split('}')[0] repalace_value1 = "${" + repalace_value + "}" index = list1.index(repalace_value) result = result.replace(repalace_value1, list2[index]) print(result)

浙公网安备 33010602011771号