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
希望对您有所帮助!
我发现了这段代码,我知道它是笛卡尔积,但如果有人可以从以下代码以及文档 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
希望对您有所帮助!