#Python #rewrite
from bisect import bisect_left
from sys import argv
def _split2(s): return s.split(' ', 1)
(_sDel, _sData) = ["[%s]\n" %s for s in "Deleted", "Data"]
def readOrigFile(f):
for ln in f: # drop_while
if ln == _sData: break
return [Entry(ln) for ln in f]
def readUserFile(f):
for ln in iter(f, lambda s:s==_sDel):
(i, m) = posEqEntry(orig, ln)
if m: orig.insert(i, Entry(ln))
for ln in f:
(i, m) = posEqEntry(orig, ln)
if m: del orig[i]
def posEqEntry(xs, value):
pos = bisect_left(orig, value)
k = _split2(value)[0]
for (i, e) in enumerate(xs):
ek = _split2(e.value)[0]
if ek != k: break # take_while
if ek == k and e.value == value: return (pos, True)
return (pos, False)
duangsues.is_a? SaltedFish
#Python #rewrite from bisect import bisect_left from sys import argv def _split2(s): return s.split(' ', 1) (_sDel, _sData) = ["[%s]\n" %s for s in "Deleted", "Data"] def readOrigFile(f): for ln in f: # drop_while if ln == _sData: break return [Entry(ln)…
https://t.iss.one/dsuses/4401
重写了一部分,还没起床就不折腾了…… 搞不清 bisect 和这个程序是做什么的就在乱写,差点把 find_entry() -> int(
重写的部分当然比较激进,常量是动态计算的,然后用了 k, e, ek 这些简写法(差点用成 k, for k1in...) posEqEntry 也是不常规的名字(没办法了)
不过我重写的控制流还好,把
while True:
x = xs[i]
if p1(x):
if p2(x): return v1
else: i += 1
else: break
return v2
简化了(其实只需要分析下 i in range(0,len(xs)) 就知道)
但是没有删全局变量(毕竟我不了解问题,或许可以作参数顺序/提升至class )
补充:写错了?
重写了一部分,还没起床就不折腾了…… 搞不清 bisect 和这个程序是做什么的就在乱写,差点把 find_entry() -> int(
重写的部分当然比较激进,常量是动态计算的,然后用了 k, e, ek 这些简写法(差点用成 k, for k1in...) posEqEntry 也是不常规的名字(没办法了)
不过我重写的控制流还好,把
while True:
x = xs[i]
if p1(x):
if p2(x): return v1
else: i += 1
else: break
return v2
简化了(其实只需要分析下 i in range(0,len(xs)) 就知道)
但是没有删全局变量(毕竟我不了解问题,或许可以作参数顺序/提升至class )
补充:写错了?
Telegram
duangsues.is_a? SaltedFish
#Python #rewrite
from bisect import bisect_left
from sys import argv
def _split2(s): return s.split(' ', 1)
(_sDel, _sData) = ["[%s]\n" %s for s in "Deleted", "Data"]
def readOrigFile(f):
for ln in f: # drop_while
if ln == _sData: break
return [Entry(ln)…
from bisect import bisect_left
from sys import argv
def _split2(s): return s.split(' ', 1)
(_sDel, _sData) = ["[%s]\n" %s for s in "Deleted", "Data"]
def readOrigFile(f):
for ln in f: # drop_while
if ln == _sData: break
return [Entry(ln)…
Forwarded from dnaugsuz
https://t.iss.one/dsuses/4401
重写了一部分,还没起床就不折腾了…… 搞不清 bisect 和这个程序是做什么的就在乱写,差点把
重写的部分当然比较激进,常量是动态计算的,然后用了 k, e, ek 这些简写法(差点用成 k, for k1in...) posEqEntry 也是不常规的名字(没办法了)
不过我重写的控制流还好,把
简化成
一言以蔽之就是(好吧不行)
(其实只需要分析下
但是没有删全局变量(毕竟我不了解问题,或许可以作参数顺序/提升至class )
依云大佬你的代码质量还是要注意下吧…… 没事可以重写下自己的代码,重视简洁性和定义力、可移植性,慎用控制流,少写换行、重复求值计算,靠这些“反优化”逼自己把可读性提上去,用这种方法没有语言的代码写不好看的😊
重写了一部分,还没起床就不折腾了…… 搞不清 bisect 和这个程序是做什么的就在乱写,差点把
find_entry() -> int(重写的部分当然比较激进,常量是动态计算的,然后用了 k, e, ek 这些简写法(差点用成 k, for k1in...) posEqEntry 也是不常规的名字(没办法了)
不过我重写的控制流还好,把
i = get_i0()
while True:
x = xs[i]
if p1(x):
if p2(x): return v1(i)
else: i += 1
else: break
return v2(i)简化成
i = get_i0()
for (i, x) in enumerate(xs):
if not p1(x): break # take_while
if p2(x): return v1(i)
return v2(i)一言以蔽之就是(好吧不行)
entry = func(_split2)
key = func.fst<<entry
value = func.snd<<entry
next(filterMap(value, p2<<key, take_while(p1<<key, islice(enumerate(xs),i0) ) ))(其实只需要分析下
i in range(0,len(xs)) 就知道,刚才我差点以为自己重构错了,pos 不是 step=1 递增)但是没有删全局变量(毕竟我不了解问题,或许可以作参数顺序/提升至class )
依云大佬你的代码质量还是要注意下吧…… 没事可以重写下自己的代码,重视简洁性和定义力、可移植性,慎用控制流,少写换行、重复求值计算,靠这些“反优化”逼自己把可读性提上去,用这种方法没有语言的代码写不好看的😊
Telegram
duangsues.is_a? SaltedFish
#Python #rewrite
from bisect import bisect_left
from sys import argv
def _split2(s): return s.split(' ', 1)
(_sDel, _sData) = ["[%s]\n" %s for s in "Deleted", "Data"]
def readOrigFile(f):
for ln in f: # drop_while
if ln == _sData: break
return [Entry(ln)…
from bisect import bisect_left
from sys import argv
def _split2(s): return s.split(' ', 1)
(_sDel, _sData) = ["[%s]\n" %s for s in "Deleted", "Data"]
def readOrigFile(f):
for ln in f: # drop_while
if ln == _sData: break
return [Entry(ln)…
Forwarded from duangsuse::Echo (duangsuse)
补充提取代码的 #Python #code :
replacecode.py:
replacecode.py:
@regress("len(it)","+","a")
def headerSize(fp): pass
from sys import argv; fps = argv[1:]
with open(argv[0], "r") as f: headerSize(f.read(), argv[0])
for fp in argv[1:]:
with open(fp, "r") as f: s = f.read(); code = s[headerSize(s)+1:]
with open(fp, "w") as f: f.write(code)
其中 #Python #codedef regress(*code_parts):这个做完发现第一项需要 fpath 就没用了 QAQ
code = "".join(code_parts)
def solve(d, x,y): #不懂算法就写死点二元仅(+)啦
vL = eval(code_parts[0], None, d)
for k in d: d[k] = (y - vL)
def excVar(ex): s = ex.args[0]; return s[len("name "):s.rfind("'")]
def wrap(whatever): #我也拽下洋文(迫真
syms = {} #已回归表
def call(x, y=None):
syms["it"] = x
if y != None:
try: eval(code) if len(syms)==0 else None
except NameError as ex: syms[excVar(ex)] = None
solve(syms, x, y)
return eval(code, None, syms)
return call
return wrap
def forFstAndTails(op0, op, xs):
xz = iter(xs)
try:
op0(next(xz))
while True: op(next(xz))
except StopIteration: pass
duangsues.is_a? SaltedFish
https://t.iss.one/c/1119363280/109316 #reveng ndk onCreate https://t.iss.one/c/1119363280/109356 #huawei homoOs( #旧事重提 https://t.iss.one/c/1119363280/109367 xposed #wechat https://t.iss.one/c/1119363280/109378 #china #robotic #旧事重提 光年实验室 https://t.iss.one/c/1119363280/109402 #framework…
https://github.com/SimpleMobileTools/Simple-SMS-Messenger #app sms
https://t.iss.one/c/1119363280/110892 #tech #windows
https://t.iss.one/c/1119363280/111015 #cplusplus #Linux #code
https://t.iss.one/c/1119363280/111049 #linux #sysadmin
https://t.iss.one/c/1119363280/111064 #GUI jetpack compose
https://t.iss.one/c/1119363280/111371 #Android #news cnBeta
https://t.iss.one/c/1119363280/111393 #cplusplus #bug 低级错误
https://t.iss.one/c/1119363280/111426 #parsing #Linux cmdline #Python shlex
https://t.iss.one/c/1119363280/111569 #root 读取 sms
https://t.iss.one/c/1119363280/111642 #Google #packaging #low
https://t.iss.one/c/1119363280/111683 #statement 草真理了,每次你不想做什么事情,或者就想写个小工具,那东西偏偏会变好……
https://t.iss.one/c/1119363280/111899 #Java #code #dev #Haha
https://t.iss.one/c/1119363280/112061 同上
https://t.iss.one/c/1119363280/112142 #naked #hardware Verilog 草
https://t.iss.one/c/1119363280/112323 #Android #ali #GitHub 草草
https://t.iss.one/c/1119363280/112460 #Apple #security OCSP
https://t.iss.one/c/1119363280/112695 #Android #dev
https://t.iss.one/c/1119363280/112729 #lib 直接调试用 ui
https://t.iss.one/c/1119363280/112873 #Haha #Android #Google #school #Security 😂
https://t.iss.one/c/1119363280/113043 #Android #build
https://t.iss.one/c/1119363280/113104 #Java primData
https://t.iss.one/c/1119363280/113573 #Kotlin #code #security
https://t.iss.one/c/1119363280/110892 #tech #windows
https://t.iss.one/c/1119363280/111015 #cplusplus #Linux #code
https://t.iss.one/c/1119363280/111049 #linux #sysadmin
https://t.iss.one/c/1119363280/111064 #GUI jetpack compose
https://t.iss.one/c/1119363280/111371 #Android #news cnBeta
https://t.iss.one/c/1119363280/111393 #cplusplus #bug 低级错误
https://t.iss.one/c/1119363280/111426 #parsing #Linux cmdline #Python shlex
https://t.iss.one/c/1119363280/111569 #root 读取 sms
https://t.iss.one/c/1119363280/111642 #Google #packaging #low
https://t.iss.one/c/1119363280/111683 #statement 草真理了,每次你不想做什么事情,或者就想写个小工具,那东西偏偏会变好……
https://t.iss.one/c/1119363280/111899 #Java #code #dev #Haha
https://t.iss.one/c/1119363280/112061 同上
https://t.iss.one/c/1119363280/112142 #naked #hardware Verilog 草
https://t.iss.one/c/1119363280/112323 #Android #ali #GitHub 草草
https://t.iss.one/c/1119363280/112460 #Apple #security OCSP
https://t.iss.one/c/1119363280/112695 #Android #dev
https://t.iss.one/c/1119363280/112729 #lib 直接调试用 ui
https://t.iss.one/c/1119363280/112873 #Haha #Android #Google #school #Security 😂
https://t.iss.one/c/1119363280/113043 #Android #build
https://t.iss.one/c/1119363280/113104 #Java primData
https://t.iss.one/c/1119363280/113573 #Kotlin #code #security
GitHub
GitHub - SimpleMobileTools/Simple-SMS-Messenger: An easy and quick way of managing SMS and MMS messages without ads.
An easy and quick way of managing SMS and MMS messages without ads. - SimpleMobileTools/Simple-SMS-Messenger
https://t.iss.one/c/1119363280/113691 #security #linux #meme #Python socket.recvuntil() 之前没用过
https://t.iss.one/c/1119363280/113807 #csharp
https://t.iss.one/c/1119363280/113932 #file Android IDE
https://t.iss.one/c/1119363280/114030 #Android #build
https://t.iss.one/c/1119363280/114073 #Kotlin synthesis 变 #GUI viewbinding..
https://t.iss.one/c/1119363280/114199 #Java #android
https://t.iss.one/c/1119363280/114288 #China #hk .
https://t.iss.one/c/1119363280/114460 #Android 通话录音
https://t.iss.one/c/1119363280/114591 #linux #sysadmin
https://t.iss.one/c/1119363280/114646 #GitHub #China #security
https://t.iss.one/c/1119363280/113807 #csharp
https://t.iss.one/c/1119363280/113932 #file Android IDE
https://t.iss.one/c/1119363280/114030 #Android #build
https://t.iss.one/c/1119363280/114073 #Kotlin synthesis 变 #GUI viewbinding..
https://t.iss.one/c/1119363280/114199 #Java #android
https://t.iss.one/c/1119363280/114288 #China #hk .
https://t.iss.one/c/1119363280/114460 #Android 通话录音
https://t.iss.one/c/1119363280/114591 #linux #sysadmin
https://t.iss.one/c/1119363280/114646 #GitHub #China #security
Forwarded from dnaugsuz
嘛,如果是要索引我给个逐个 bsearch 算法 #Python #code
def bsearch(x, xs): #xs: (<)sorted
def atSub(iL, iR):
i=(iL+iR)//2; v = xs[i]
return i if v==x else (-1) if (iR-iL)==1 else atSub(i,iR) if v<x else atSub(iL,i) if v>x else (-1)
return atSub(0, len(xs))
ary = ["1 7 12 32", "5 9 18 38", "9 13 19 41", "17 20 32 50"]
ary = [[int(sn) for sn in s.split(" ")] for s in ary] def search(v, a) -> [int,int]:
for i, xs in enumerate(a):
j = bsearch(v, xs)
if j != -1: return [i,j] assert search(50,ary) == [3,3]#python #code
from PIL import Image
def sumPix(a,b): return tuple(aa+bb for aa,bb in zip(a,b))
def _drawHV(no):
def on(m, pa, xs):
xz = iter(xs)
for pb in range(img.size[no]):
p = (pb,pa) if no==0 else (pa,pb)
img.putpixel(p, sumPix(img.getpixel(p), next(xz)) )
return on
drawHorz = _drawHV(0)
drawVert = _drawHV(1)
img = Image.new("RGB", (50,50), "black")
def cv(i, ns):
c = [0 for _ in range(3)]
for num in ns: c[i] = num; yield tuple(c)
def color2(img):
(m,n) = img.size
for i in range(n): drawHorz(img, i, cv(1,range(m)))
for j in range(m): drawVert(img, j, cv(2,range(n)))
color2(img)
img.save("c2.png")#python #code #huawei 开始还以为 reduce 的 op/init args 顺序都是 acc,x ,没想到一个 acc,x 一个 xs,acc 啊……
from functools import reduce
def subst(sa,sb,sep=" "):
reps = list(zip(*(s.split(sep) for s in [sa,sb])))
return lambda s: reduce(lambda acc,ab: acc.replace(*ab), reps, s)
print(subst("Google Android", "Huawei Haromny")("Google's Android"))