Python for in循环生成字典

Python for in loop to generate dictionary

我发现了这段代码,我知道它是笛卡尔积,但如果有人可以从以下代码以及文档 link 中为我分解这一行 [s+t for s in a for t in b]句法。

显然这个 for in 语法与 s+t???对我来说很陌生,我也是 python 的新手。感谢文档 link 这样我就可以更多地了解这种语法,因为我正在尝试了解 for in 循环的其他变体。

rows = 'ABCDEFGHI'
cols = '123456789'

def cross(a, b):
    return [s+t for s in a for t in b]

def main():
    print(cross(rows, cols))

if __name__ == "__main__": main()

这是一种称为列表理解的 shorthand 语法。请参阅文档的第 5.1.4 节:https://docs.python.org/2/tutorial/datastructures.html

该行与此完全相同:

lst = []
for s in a:
    for t in b:
        lst.append(s+t)
return lst

它只是找到 a 中的每对元素和 b 中的元素的总和。

可以细分为:

lst = []
for s in A:
    for t in b:
        lst.append(s+t)
return lst

希望对您有所帮助!