Python 如何将(:=运算符)用于的循环?
为什么这个代码是假的?它说:“SyntaxError:无效语法” 如何将(:=运算符)用于的循环Python 如何将(:=运算符)用于的循环?,python,Python,为什么这个代码是假的?它说:“SyntaxError:无效语法” 如何将(:=运算符)用于的循环 for j in x := list(zip(*[re.split("\W+",open(sys.argv[1],'r',encoding="utf-8").read().lower())[i:] for i in range(int(sys.argv[2]))])): d = {j: x.count(j) for j in set(x)} [print(
for j in x := list(zip(*[re.split("\W+",open(sys.argv[1],'r',encoding="utf-8").read().lower())[i:] for i in range(int(sys.argv[2]))])):
d = {j: x.count(j) for j in set(x)}
[print(" ".join(k)+" "+str(d.get(k))+"\n") for k in sorted(d) if d.get(k)==int(sys.argv[3]) and re.search("^\w{"+sys.argv[4]+"} (.+ )?\w{"+sys.argv[5]+"}$"," ".join(k))]
您需要在Walrus操作符中使用括号 这很有效
for x in (y := [1, 2, 3]):
print(x)
但事实并非如此
for x in y := [1, 2, 3]:
print(x)
但是,你应该考虑重构你的代码。在循环中一遍又一遍地重新分配给
d
似乎没有任何意义,而预先计算set(x)
会更有效。如果在代码中发现错误时遇到困难,应该尝试将其分解为多个部分,而不是在一行中运行所有内容。这将使它更具可读性和“可读性很重要。”——蟒蛇之禅你希望用它实现什么?@amdzazda你可以接受他的答案,如果它有助于你点击他答案左侧下方的“向下投票”选项下面的勾号