Python 按列阅读列表

Python 按列阅读列表,python,python-3.x,list,python-2.7,Python,Python 3.x,List,Python 2.7,我有一份清单,清单上的数字如下: ['1,2,3,4', '5,6,7,8', '9,10,11,12'] [',', ',', ','] 我想按列列出一个清单。例如:单个列表中的1,5,9 我已经编写了一个python代码: def readcolumn(userlist,columnName): for x in userlist: columnList.append(x[columnName]) return columnList data1=read

我有一份清单,清单上的数字如下:

['1,2,3,4', '5,6,7,8', '9,10,11,12']
[',', ',', ',']
我想按列列出一个清单。例如:单个列表中的
1,5,9
我已经编写了一个python代码:

def readcolumn(userlist,columnName):
    for x in userlist:
        columnList.append(x[columnName])
    return columnList

data1=readcolumn(myList,1)
print(data1)
当我试图打印数据时。结果如下:

['1,2,3,4', '5,6,7,8', '9,10,11,12']
[',', ',', ',']

因为索引“1”的值是“,”。我试着去掉“,”,但对于两位数,它只打印第一个字符,例如“10”,它只打印“1”。我如何解决这个问题你有一个包含三个字符串的一维列表。没有列。您需要将其拆分为子列表。然后,您可以通过简单的理解获得专栏:

l = ['1,2,3,4', '5,6,7,8', '9,10,11,12']
m = [item.split(',') for item in l]

[item[1] for item in m]
#['2', '6', '10']
当然,如果要一步完成并放弃2D列表,可以:

l = ['1,2,3,4', '5,6,7,8', '9,10,11,12']
[item.split(',')[1] for item in l]
#['2', '6', '10']