Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.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-None参数_Python_List_Arguments - Fatal编程技术网

Python-None参数

Python-None参数,python,list,arguments,Python,List,Arguments,我有一个具有4个参数的函数: def uploadDatabase(user,filter1,filter2, name): """uploads playlists to database if a playlist satisfying both filters is not long enough, we pick a playlist based on one single filter""" playlist_f

我有一个具有4个参数的函数:

   def uploadDatabase(user,filter1,filter2, name):
        """uploads playlists to database

        if a playlist satisfying both filters is not long enough,
        we pick a playlist based on one single filter"""

        playlist_filter1 = [x['track'] for x in filter1]
        playlist_filter2 = [x['track'] for x in filter2]
        playlist_both_filters = [x['track'] for x in filter2 if x['track'] in [y['track'] for y in filter1]]

       #create an empty dict for user as key
       double_filter = {str(user):{}}
       single_filter1 = {str(user):{}}
       single_filter2 = {str(user):{}}
       #set initial playback number for each track
       count = 1
       #set counts to tracks
       double_filter[str(user)] = dict(zip(playlist_both_filters, [count for i in playlist_both_filters]))
       db_double = double_filter 
       #set counts to tracks
       single_filter1[str(user)] = dict(zip(playlist_filter1, [count for i in playlist_filter1]))
       db_single1 = single_filter1 
       (...)
但是,有时无法通过
filter2

uploadDatabase(user,energy_playlist, None, 'my playlist')

如何修复
uploadDatabase()
并告诉它忽略分配给变量
playlist\u filter2
double\u filter
None-Type
,因为两者都需要有效的
列表

您可以通过以下操作将
None
类型转换为两个过滤器的有效空列表:

playlist_filter1 = [x['track'] for x in filter1] if filter1 is not None else []
playlist_filter2 = [x['track'] for x in filter2] if filter2 is not None else []
而不是:

playlist_filter1 = [x['track'] for x in filter1]
playlist_filter2 = [x['track'] for x in filter2]

您可以通过执行以下操作将两个筛选器的
None
类型转换为有效的空列表:

playlist_filter1 = [x['track'] for x in filter1] if filter1 is not None else []
playlist_filter2 = [x['track'] for x in filter2] if filter2 is not None else []
而不是:

playlist_filter1 = [x['track'] for x in filter1]
playlist_filter2 = [x['track'] for x in filter2]

如果我理解正确,您需要检查参数filter2是否被传递

要做到这一点很简单,您实际上给它一个默认值
None
,然后在代码中检查参数是否为
None

示例代码
当您使用函数时,您可以传递filter2,它将覆盖默认的
None
值,或者不传递它,它将是
None

,如果我理解正确,您需要检查参数filter2是否被传递

要做到这一点很简单,您实际上给它一个默认值
None
,然后在代码中检查参数是否为
None

示例代码
当您使用该功能时,您可以通过filter2,它将覆盖默认的
None
值,或者只是不通过它,它将是
None

请更新您的答案,以便它修复播放列表\u两个过滤器=[x['track']对于过滤器2中的x,如果[y['track']中的x['track']对于过滤器1中的y],同样使用
如果条件
,请更新您的答案,以便它也使用
如果条件
,也可以使用
如果条件
,则在过滤器2中为x修复
播放列表(两个过滤器=[x['track']