我有一个带空格的字符串,我想根据我在列表中定义的模板将逗号port after save days {"id":3,"name":"\tXIAMEN","price_mk":0,"company_a_20":0,"company_a_40":0,"company_a_days":"\"444\"","company_a_json":"[{\"portName\":\"XIAMEN\",\"days\":\"4\",\"id\":\"3\",\"datefrom\":\"02\\\/02\\\/2017\",\"dateTo\":\"02\\\/28\\\/2017\",\"price_x\":4,\"prices_y\":4},{\"portName\":\"XIAMEN\",\"days\":\"12\",\"id\":\"3\",\"datefrom\":\"\",\"dateTo\":\"\",\"price_x\":0,\"prices_y\":0},{\"portName\":\"XIAMEN\",\"days\":\"333\",\"id\":\"3\",\"datefrom\":\"02\\\/08\\\/2017\",\"dateTo\":\"02\\\/23\\\/2017\",\"price_x\":12,\"prices_y\":12},{\"portName\":\"XIAMEN\",\"days\":\"444\",\"id\":\"3\",\"datefrom\":\"02\\\/09\\\/2017\"...,
插入特定位置。
例如:
输入
n= raw_input("name :")
pref = raw_input("preference :")
输出
,
Code Tried:
String_in = "{080002092014Mark 21022017392 Ert02 stereo-Gaman09 39-934.4930start 23kg0093029 }"
Template = [2,5,13,21,29,30,33,39,44,55,61,63,65,77]
输出:
String_out = "{0,800,02092014,Mark ,2102201,3,92 ,Ert02 ,stereo-Gaman09 ,39-934.4930,start ,23,kg,0093029 ,}
只有1行包含所有逗号,而不是3行。
答案 0 :(得分:1)
您可以执行以下操作:
gulp.task('watch', [], () => {
console.log(" ");
console.log("Watching for changes...");
console.log(" ");
gulp.watch([config.filters.app, config.filters.appModuleFiles], ['inject-js']);
gulp.watch(config.filters.client, ['sass']);
})
或者更简洁的解决方案:
def split_by_template(s, template, sep=","):
output_pieces = []
prev_pos = 0
for i in template + [len(s)]:
output_pieces += [s[prev_pos:i]]
prev_pos = i
return sep.join(output_pieces)
这基本上会将每个模板位置与前一个模板位置拉开,因此像def split_by_template(s, template, sep=","):
return sep.join(s[a:b] for a, b in zip([0] + template, template + [len(s)]))
这样的模板会产生[1, 2, 5]
对。请注意,我们在开头和结尾添加了一个额外的[0]和[len(str),因此第一个和最后一个部分是正确的。
然后剪切字符串的相关部分,并用逗号连接它们。
答案 1 :(得分:0)
您可以使用字符串切片来获取字符串的各个部分并列出部分列表。然后用 ','。join(lst)得到结果。
循环遍历模板值,记住前一个(比如pos1和pos2)。 String_in [pos1:pos2]获取部分。最后一部分是String_in [pos1:]。 pos1将被初始化为零,pos2将是循环变量 - 在循环结束时分配给pos1。
lst = []
pos1 = 0
for pos2 in Template:
lst.append(String_in[pos1:pos2])
pos1 = pos2
lst.append(String_in[pos1:])
String_out = ','.join(lst)
类似的东西,但没有经过测试 - 没有使用Python在计算机上。