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

时间:2015-04-08 01:40:18

标签: python python-2.7

这是一个允许我打印我的两个列表cursosArreglotareasArreglo的功能,但是当我打印它们时,它们会像这样出现:[['qwert'], ['fisica']] Esta es la lista de tareas y 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()

4 个答案:

答案 0 :(得分:6)

对于列表列表,lst只需在展平后使用join和合适的分隔符。您可以使用chain模块的itertools来展平列表:

from itertools import chain

lst = [['zxcvb'], ['4'], ['nbvcx'], ['3'], ['tregd'], ['2'], ['bvxx'], ['3']]
flat_lst =  list(chain.from_iterable(lst))
print ','.join(flat_lst)

答案 1 :(得分:2)

这里有一些没有任何模块或任何东西的代码。

for i in range(len(cursosArreglo)):
    cursosArreglo[i] = "".join(cursosArreglo[i])

print(", ".join(cursosArreglo))

您也可以通过将其替换为tareasArreglo来为cursosArreglo运行此内容。

首先查看列表列表,然后使用str.join()替换列表中的每个位置,然后再使用str.join完全加入列表。

这也可以压缩成一行。

strCursosArreglo = ", ".join("".join(i) for i in cursosArreglo)

答案 2 :(得分:2)

您还使用lambda,代码如下:

>>> func= lambda lst: [m for i in lst for m in func(i)] if type(lst) is list else [lst]
>>> lst = [['zxcvb'], ['4'], ['nbvcx'], ['3'], ['tregd'], ['2'], ['bvxx'], ['3']]
>>> func(lst)
['zxcvb', '4', 'nbvcx', '3', 'tregd', '2', 'bvxx', '3']

或者,

>>> func=lambda L: sum(map(func, L), []) if isinstance(L, list) else [L]
>>> func(lst)
['zxcvb', '4', 'nbvcx', '3', 'tregd', '2', 'bvxx', '3']

答案 3 :(得分:0)

您需要将列表展平,然后加入,例如使用嵌套的join s:

>>> data = [['zxcvb'], ['4'], ['nbvcx'], ['3'], ['tregd'], ['2'], ['bvxx'], ['3']]
>>> print ", ".join("".join(s) for s in data)
zxcvb, 4, nbvcx, 3, tregd, 2, bvxx, 3