如何将一行代码分解为多个描述性行,因为我无法理解这一行代码。你知道吗
data = formatted_data + "|" + '|'.join(["{}".format(a) for b, a in sorted(values.items()) if a and b not in ['SecureHash']])
这是正确的还是没有人能帮我:
for b, a in sorted(values.items()):
if a and b not in ['SecureHash']:
c = ["{}".format(a)]
data = formatted_data + "|" + "|".join(c)
这段代码正在收集
a
的字符串表示形式,然后用它构建另一个字符串。你知道吗您需要定义一个外部列表,以说明列表理解表达式。你知道吗
此外,要分解
c
是如何组装的,您可以扩展列表:最后,把这三个部分结合起来:
你可能想读一下list comprehensions。你知道吗
基本上就是列出这样的事情:
[item for item in iterable_thing]
所以这个是一个字符串列表(
"{}".format(a)
)。我假设a
是一个散列,但让我们假设它是一个范围内的数字:["{}".format(a) for a in range(5)]
将使:
>>>['0', '1', '2', '3', '4']
添加
if
语句会使理解变得相当复杂,而编写这段代码的人似乎就是那种a in b in i in j
类型的人,所以他们的代码很难理解。好的变量名非常重要。你知道吗好吧,一般来说,你可以看到任何开始括号和加号运算符在字符串中作为一个“断点”。使用您的示例:
好的,现在我们需要解开连接中发生的事情:
好的,我们有一些字符串格式和一些列表理解:
做最后一个阶段,有很多事情要回去,因为事情扩大了。这些列表的理解非常简洁。。。你知道吗
不过,这里有一些问题:
values
从哪里来?你知道吗"{}".format(a)
?你知道吗等等
您的“扩展”代码并不完全相同,因为您不处理没有匹配项的情况
values
是空的并且每次都替换data
,而不是增加它。你知道吗相关问题 更多 >
编程相关推荐