相关疑难解决方法(0)

将列表列表一起加入Python中的一个列表中

可能重复:
在Python中展平(不规则)列表

我有一个列表,其中包含许多列表.这是一个例子,

[
    [Obj, Obj, Obj, Obj],
    [Obj],
    [Obj],
    [
        [Obj,Obj],
        [Obj,Obj,Obj]
    ]
]
Run Code Online (Sandbox Code Playgroud)

有没有办法将所有这些项目合并为一个列表,因此输出将是类似的

[Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj,Obj]
Run Code Online (Sandbox Code Playgroud)

python list

3
推荐指数
1
解决办法
6367
查看次数

仅使用列表推导构建列表,没有功能

特定

userplays = { "Alice"   : { "AC/DC" : 2,
                            "The Raconteurs" : 3,
                            "Mogwai" : 1
                          },
              "Bob"     : { "The XX" : 4,
                            "Lady Gaga" : 3,
                            "Mogwai" : 1,
                            "The Raconteurs" : 1
                          },
              "Charlie" : { "AC/DC" : 7,
                            "Lady Gaga" : 7
                          }
            }
Run Code Online (Sandbox Code Playgroud)

获取所有乐队的列表:

['Lady Gaga', 'Mogwai', 'AC/DC', 'The Raconteurs', 'The XX']
Run Code Online (Sandbox Code Playgroud)

我可以

list(set(flatten([ [ band 
                     for band 
                     in playcounts.keys() ] 
                   for playcounts 
                   in userplays.values() ] ) ) )
Run Code Online (Sandbox Code Playgroud)

哪个flatten来自Flatten(一个不规则的)列表列表,但有没有 …

python list-comprehension

3
推荐指数
2
解决办法
165
查看次数

Python 2.7:检查子列表是否包含项目

我有一个Python列表.如下图所示,我想检查其中一个子列表是否包含一个项目.以下尝试失败.有没有人知道一个简单的方法 - 没有我写我自己的循环?

>>> a = [[1,2],[3,4],[5,6],7,8,9]
>>> 2 in a
Run Code Online (Sandbox Code Playgroud)

我希望,True但回报是False

python list

3
推荐指数
1
解决办法
7001
查看次数

用python中的列表替换元素

在python中,用另一个列表中的元素替换列表中的元素的最佳方法是什么?

例如,我有:

a = [ 1, 'replace_this', 4 ]
Run Code Online (Sandbox Code Playgroud)

我想替换replace_this[2, 3].更换后必须是:

a = [ 1, 2, 3, 4 ]
Run Code Online (Sandbox Code Playgroud)

更新

当然,切片可以做(对不起,我没有在问题中写出来),但问题是你可能replace_this在列表中有多个值.在这种情况下,您需要在循环中进行替换,这将变得不理想.

我认为使用它会更好itertools.chain,但我不确定.

python list

3
推荐指数
1
解决办法
2151
查看次数

Python 2:在新显式列表定义中插入现有列表

这可能是不可能的,但如果是的话,我写的一些代码会很方便:

ListOne = ['jumps', 'over', 'the']
ListTwo = ['The', 'quick', 'brown', 'fox', ListOne, 'lazy', 'dog!']
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我最终会将ListOne作为ListTwo中的一个列表.

但相反,我想将ListOne扩展为ListTwo,但我不想做以下事情:

ListOne = ['jumps', 'over', 'the']
ListTwo = ['The', 'quick', 'brown', 'fox']
ListTwo.extend(ListOne)
ListTwo.extend(['lazy', 'dog!']
Run Code Online (Sandbox Code Playgroud)

这将有效,但它不像上面的代码那样可读.

这可能吗?

python list

3
推荐指数
1
解决办法
373
查看次数

如何打印没有括号的列表?

这是一个可以让我打印我的两个列表,cursosArreglotareasArreglo,但是当我打印出来就出来这样的:[['qwert'], ['fisica']] 埃斯塔ES LA LISTA德tareasŸSUS prioridades:

[['zxcvb'], ['4'], ['nbvcx'], ['3'], ['tregd'], ['2'], ['bvxx'], ['3']]

如何在没有括号的情况下打印两个列表?

def verTareas():
    print("")
    print("Saludos "+nombre+(" a continuacion puede ver su informacion"))
    print("")
    print("Esta es la lista de cursos asignados: ")
    print str(cursosArreglo)
    print("Esta es la lista de tareas y sus prioridades: ")
    print '\n'+str(tareasArreglo)
    print("")
    regresar()
Run Code Online (Sandbox Code Playgroud)

python python-2.7

3
推荐指数
1
解决办法
739
查看次数

将列表中的每个字符串拆分为数字和非数字部分

我有这个字符串列表:

x = ['+27', '05', '1995 F']
Run Code Online (Sandbox Code Playgroud)

我想要一些代码输出:

['+', '27', '05', '1995', 'F']
Run Code Online (Sandbox Code Playgroud)

我正在考虑.split()在最后一个元素上使用该函数,所以我编写了这段代码:

x=['+27', '05', '1995 F']
x[2]=x[2].split()
Run Code Online (Sandbox Code Playgroud)

这输出:

['+27', '05', ['1995', 'F']]
Run Code Online (Sandbox Code Playgroud)

如何确保第二个元素不是子列表,而是输出这个?

['+27', '05','1995','F']
Run Code Online (Sandbox Code Playgroud)

我应该使用insertdel

我用第一个元素写了这个insertdel:

x=x.split("/")
x.insert(0,x[0][0])
x.insert(1,x[1][1:])
del x[2]
Run Code Online (Sandbox Code Playgroud)

这输出:

['+', '27', '05', '1995 F']
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

python string list elements subtraction

3
推荐指数
1
解决办法
179
查看次数

展平python中每个键的值

我有一个这样的字典:

migration_dict = {'30005': ['key42750','key43119', 'key44103', ['key333'],
['key444'], ['keyxx']], '30003': ['key43220', 'key42244','key42230',
['keyzz'], ['kehh']]}
Run Code Online (Sandbox Code Playgroud)

我怎样才能压平每个键的值以便得到类似的东西:

migration_dict = {'30005': ['key42750','key43119', 'key44103', 'key333',
'key444', 'keyxx'], '30003': ['key43220', 'key42244','key42230',
'keyzz', 'kehh']}
Run Code Online (Sandbox Code Playgroud)

python dictionary flatten python-2.7

3
推荐指数
1
解决办法
409
查看次数

在python中递归地展平嵌套列表

我正在使用Python中的生成器,我正在尝试使用简单的递归方案来实现flatten-function.也就是说,一个函数将一个列表作为输入,该列表可能包含子列表,并输出一个只能在输入的原子元素上迭代的可迭代对象.

所以,print(list(flatten([1,2,3,[4,5,6]])))应该返回包含的内容[1,2,3,4,5,6].

我的尝试如下:

def flatten(toflatten):
    try:
        for element in toflatten:
            flatten(element)
    except TypeError:
        yield toflatten
Run Code Online (Sandbox Code Playgroud)

因此,它应检查其参数是否是可迭代对象.如果是这种情况,也可以对此对象进行递归.否则,将其作为原子元素.

这不起作用,flatten([1,2,3,[4,5,6]])只返回一个空列表.

为什么会这样?特别是; 为什么它甚至没有对此输入执行递归函数调用?(我使用的是Python 3.5)

python recursion list generator python-3.x

3
推荐指数
1
解决办法
322
查看次数

“平”列表,包含列表列表到列表列表

这个问题不同于将列表/嵌套列表转换为不嵌套的列表(这会产生一组非常具体的响应,无法解决我的情况),也不同于许多“列表的扁平列表”答案。

我要列出一个列表,其中一些又是列表列表,然后“拉平”到列表列表(而不仅仅是列表!)。

作为一个具体的例子,我想从这里开始:

my_list_of_lists = [[1, 2, 3], [[9, 10], [8, 9, 10], [3, 4, 6]], [11, 12, 13]]
Run Code Online (Sandbox Code Playgroud)

对此

target_list_of_lists = [[1, 2, 3], [9, 10], [8, 9, 10], [3, 4, 6], [11, 12, 13]]
Run Code Online (Sandbox Code Playgroud)

(从视觉上讲,我想将外部列表中的所有[[]] 内部分别转换为[]。)

python list

3
推荐指数
1
解决办法
125
查看次数