我有一个数组,可以这样说:
arr = ["60", "DD", "81", "01" , "01", "29", "B8", "1B", "00", "30", "2C", "46" , "00", "0A", "81", "02" , "0D", "25", "00", "37", "41", "31", "00", "C2", " 7F、“06”、“00”、“17”、“94”、“1A”、“00”、“48”、“06”、“05”、“00”、“5C”、“7F” , "3E", "87", "FF", "0F", "B8", "0A", "38", "0C"]
我正在尝试替换"81", "01"
with"81"
和"81", "02"
with 的每次出现"82"
。我试过了,但它没有适当地替换这些值。这是我的代码。
import numpy as np
values = np.array(arr)
searchval = ["81", "01"]
N = len(searchval)
possibles = np.where(values == searchval[0])[0]
solns = []
for p in possibles:
check = values[p:p+N]
if np.all(check == searchval):
arr.pop(p+1)
solns.append(p)
print(solns)
如果有人能帮我解决这个问题,那就太好了。谢谢你。
鉴于您的两个字符串,您可以将列表转换为字符串并使用str.replace
then split 进行替换以返回转换后的列表:
s = ' '.join(arr)
s = s.replace('81 01', '81')
s = s.replace('81 02', '82')
print s.split()
# ['60', 'DD', '81', '01', '29', 'B8', '1B', '00', '30', '2C', '46', '00', '0A', '82', '0D', '25', '00', '37', '41', '31', '00', 'C2', '7F', '06', '00', '17', '94', '1A', '00', '48', '06', '05', '00', '5C', '7F', '3E', '87', 'FF', '0F', 'B8', '0A', '38', '0C']
效率不高,但简洁易读。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句