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

按类型对python列表中的元素进行分组

按类型对python列表中的元素进行分组,python,list,Python,List,我有一个异构列表,我想按类型对其元素进行分组 比方说,我有: l = [[], 1, 2, 'a', 3, 'b', [5, 6]] 我想: l = [[[], [5, 6]], [1, 2, 3], ['a', 'b']] 如果顺序不重要的话 python ic是如何做到这一点的 我不想要循环中的循环,循环中的循环 谢谢 使用: 输出 作为替代方案,您可以使用: 使用: 输出 作为替代方案,您可以使用: 您可以使用内置函数执行以下操作,该函数提供列表或字典作为返回值的选项: l = [[]

我有一个异构列表,我想按类型对其元素进行分组

比方说,我有:

l = [[], 1, 2, 'a', 3, 'b', [5, 6]]
我想:

l = [[[], [5, 6]], [1, 2, 3], ['a', 'b']]
如果顺序不重要的话

python ic是如何做到这一点的

我不想要循环中的循环,循环中的循环

谢谢

使用:

输出

作为替代方案,您可以使用:

使用:

输出

作为替代方案,您可以使用:


您可以使用内置函数执行以下操作,该函数提供列表或字典作为返回值的选项:

l = [[], 1, 2, 'a', 3, 'b', [5, 6]]

rv = dict()

for thing in l:
    if type(thing) in rv:
        rv[type(thing)].append(thing)
    else:
        rv[type(thing)] = [thing]

print([x for x in rv.values()])
输出:

或:


您可以使用内置函数执行以下操作,该函数提供列表或字典作为返回值的选项:

l = [[], 1, 2, 'a', 3, 'b', [5, 6]]

rv = dict()

for thing in l:
    if type(thing) in rv:
        rv[type(thing)].append(thing)
    else:
        rv[type(thing)] = [thing]

print([x for x in rv.values()])
输出:

或:


请显示您的非Python尝试请显示您的非Python尝试
accumulation = {}
for e in l:
    accumulation.setdefault(type(e), []).append(e)
l = [[], 1, 2, 'a', 3, 'b', [5, 6]]

rv = dict()

for thing in l:
    if type(thing) in rv:
        rv[type(thing)].append(thing)
    else:
        rv[type(thing)] = [thing]

print([x for x in rv.values()])
[[[], [5, 6]], [1, 2, 3], ['a', 'b']]
>>> rv
{list: [[], [5, 6]], int: [1, 2, 3], str: ['a', 'b']}