小编Ped*_*dsB的帖子

仅在 Vim 中的匹配搜索中替换字符串

我知道你可以使用 Vim 替换文件中的某些模式:

:%s/<pattern>/<replacement>/g
Run Code Online (Sandbox Code Playgroud)

我想要做的是仅在辅助搜索匹配的情况下执行模式替换,例如:如果我的文件中有以下几行:

00_sub_5_train
01_sub_6_train
02_sub_5_train
03_sub_9_train
04_sub_8_train
05_sub_5_train
06_sub_5_train
Run Code Online (Sandbox Code Playgroud)

我想执行::%s/train/not_train/g仅在找到字符串“sub_5”的行上执行,剩下的就是:

00_sub_5_not_train
01_sub_6_train
02_sub_5_not_train
03_sub_9_train
04_sub_8_train
05_sub_5_not_train
06_sub_5_not_train
Run Code Online (Sandbox Code Playgroud)

这可能吗?

vi vim

3
推荐指数
1
解决办法
1040
查看次数

使用由两个列表排序产生的排序对第三个列表进行排序?

假设我有三个列表:

X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0,   1,   1,    0,   1,   2,   2,   0,   1]
Z = [ 5,   2,   3,    1,   4,   9,   6,   0,   7]
Run Code Online (Sandbox Code Playgroud)

我可以很容易地根据 Y 对 X 进行排序:

XY_sort = [x for _,x in sorted(zip(Y,X))]
print(XY_sort)  # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]
Run Code Online (Sandbox Code Playgroud)

当我想根据产生 XY_sort 的排序对列表 Z 进行排序时,就会出现疑问。理想情况下,我想结束:

Z_sort = [5,   1,   0,   2,   3,   4,   7,   9,   6]
Run Code Online (Sandbox Code Playgroud)

我猜最好的方法是在 X 被排序到 XY_sort 时以某种方式存储它的排序索引,然后使用它们对 …

python sorting list

2
推荐指数
1
解决办法
77
查看次数

标签 统计

list ×1

python ×1

sorting ×1

vi ×1

vim ×1