关于python:如何打印没有括号的列表?

How can i print a list without the brackets?

本问题已经有最佳答案,请猛点这里访问。

这是一个函数,允许我打印我的两个列表,cursosArreglotareasArreglo,但是当我打印它们时,它们会像这样出现:[['qwert'], ['fisica']]。根据先验情况确定:

埃多克斯1〔3〕

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

1
2
3
4
5
6
7
8
9
10
11
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 '
'
+str(tareasArreglo)
    print("")
    regresar()


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

1
2
3
4
5
from itertools import chain

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

您还可以使用lambda,代码如下:

1
2
3
4
>>> 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']

或者,

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


这里有一些不需要任何模块或任何东西就可以工作的代码。

1
2
3
4
for i in range(len(cursosArreglo)):
    cursosArreglo[i] ="".join(cursosArreglo[i])

print(",".join(cursosArreglo))

你也可以用它来代替tareasArreglo,用它来代替cursosArreglo

首先浏览列表,然后用字符串版本替换列表中的每个点,方法是使用str.join(),然后使用str.join再次完全加入列表。

这也可以压缩成一行。

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


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

1
2
3
>>> 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