我有什么作为输入:
list: [[2, 4], [2, 6], [2, 8]]
Run Code Online (Sandbox Code Playgroud)
我想要的输出:
set: 2,4,6,8
Run Code Online (Sandbox Code Playgroud)
我目前在做什么(不工作):
def convert(input_list):
all_nums = set([arr[0], arr[1]] for arr in input_list)
return all_nums
Run Code Online (Sandbox Code Playgroud)
我知道我可以手动遍历父数组并将子数组的内容添加到set这样的:
def convert(input_list):
all_nums = set()
for inner_list in input_list:
all_nums.add(inner_list[0])
all_nums.add(inner_list[1])
return all_nums
Run Code Online (Sandbox Code Playgroud)
all_nums.add(inner_list[0], inner_list[1])吗?简单地:
my_list = [[2, 4], [2, 6], [2, 8]]
my_set = {e for l in my_list for e in l}
Run Code Online (Sandbox Code Playgroud)
这是使用“集合理解”,它是以下内容的压缩版本:
my_list = [[2, 4], [2, 6], [2, 8]]
my_set = set()
for l in my_list:
for e in l:
my_set.add(e)
Run Code Online (Sandbox Code Playgroud)
或者,你可以这样做:
my_list = [[2, 4], [2, 6], [2, 8]]
my_set = set()
for l in my_list:
my_set.update(l)
Run Code Online (Sandbox Code Playgroud)
(从modesitt无耻地窃取的变量名。)