Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
作业可以作为python列表理解的一部分吗?_Python_List_List Comprehension - Fatal编程技术网

作业可以作为python列表理解的一部分吗?

作业可以作为python列表理解的一部分吗?,python,list,list-comprehension,Python,List,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

是否可以使用列表理解代替下面的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 shod_list]
或者如果使用变量
q

shod_l = [pd.DataFrame() for q in shod_list]
或者,如果您决定使用某个范围:

shod_l = [pd.DataFrame() for q in range(len(shod_list))]

回答标题问题,是的,可以使用。等效的循环是

shod_l = [q := pd.DataFrame() for _ in range(len(shod_list))]

但正如其他答案中提到的,绑定
q
没有意义,因此在这种特殊情况下,不需要赋值。

您的代码看起来有点不可靠,因为q是循环计数器,并且在循环中被重新赋值。可能有用,但不好。是的,但只是因为作业毫无意义;感谢大家,您只需
shod_l.append(pd.DataFrame())
@巴尼:是的,我确实需要使用range,因为shod_列表中的字符串数量可以更改。无论如何,这是非常有帮助的!谢谢@在运行程序之前,输入CARCIGNICATE no。我使用shod_列表的长度来确定我需要运行多少次api查询(因为列表包含不同的搜索词,这些搜索词用作它的一部分),然后需要创建多少空数据帧,以便将api返回的json对象放入每个数据帧中[pd.DataFrame()表示范围内的q(len(shod_list))]#感谢@barny:)表示范围内的n(len(shod_list)):shod_term=shod_list[n]print(f“\n当前搜索:{shod_term}”)shod_url_search=f'{SHODAN API_KEY}&query={shod_term}'shod_req_search=request.get(shod_url_search)#真的应该在这里尝试一下/除此之外…稍后打印(f'URL连接状态:{shod_req_search.status_code}')shod_results=shod_req_search.json()从这里开始做其他事情。。。。
shod_l = [q := pd.DataFrame() for _ in range(len(shod_list))]