可以将分配作为 python 列表理解的一部分吗?
Can assignments be made as part of python list comprehension?
是否可以使用列表理解来代替下面的 for 循环?
shod_l = list() # Initialize a list for empty pd.DataFrames that will be used later for merging of api query results
for q in range(len(shod_list)): #shod_list is a list containing several strings
q = pd.DataFrame()
shod_l.append(q)
您可以像这样使用列表推导式(因为您在循环内的赋值无效):
shod_l = [pd.DataFrame() for _ in range(len(shod_list))]
您只需:
shod_l = [pd.DataFrame() for _ in shod_list]
或者如果使用变量 q
:
shod_l = [pd.DataFrame() for q in shod_list]
或者如果您决定使用范围:
shod_l = [pd.DataFrame() for q in range(len(shod_list))]
要回答标题问题,是的,可以使用 assignment expressions。等效循环将是
shod_l = [q := pd.DataFrame() for _ in range(len(shod_list))]
但如其他答案中所述,绑定 q
没有意义,因此在这种特殊情况下,不需要赋值。
是否可以使用列表理解来代替下面的 for 循环?
shod_l = list() # Initialize a list for empty pd.DataFrames that will be used later for merging of api query results
for q in range(len(shod_list)): #shod_list is a list containing several strings
q = pd.DataFrame()
shod_l.append(q)
您可以像这样使用列表推导式(因为您在循环内的赋值无效):
shod_l = [pd.DataFrame() for _ in range(len(shod_list))]
您只需:
shod_l = [pd.DataFrame() for _ in shod_list]
或者如果使用变量 q
:
shod_l = [pd.DataFrame() for q in shod_list]
或者如果您决定使用范围:
shod_l = [pd.DataFrame() for q in range(len(shod_list))]
要回答标题问题,是的,可以使用 assignment expressions。等效循环将是
shod_l = [q := pd.DataFrame() for _ in range(len(shod_list))]
但如其他答案中所述,绑定 q
没有意义,因此在这种特殊情况下,不需要赋值。