Python 挣扎于字符串到列表的转换
我已收到字符串格式的输入:Python 挣扎于字符串到列表的转换,python,string,list,Python,String,List,我已收到字符串格式的输入: """4 101,CS101,10 101,CS102,20 102,CS102,30 102,CS101,10""" 我想把它转换成一个列表的格式 [["101","101","102","102"], ["CS101","CS102","CS102","C
"""4
101,CS101,10
101,CS102,20
102,CS102,30
102,CS101,10"""
我想把它转换成一个列表的格式
[["101","101","102","102"], ["CS101","CS102","CS102","CS101"], ["10","20","30","10"]]
我试着用拉链,但没能做到。
提前感谢。阅读行,然后使用
zip
通过配对每行以另一种方式阅读:
v=“”4
101,CS101,10
101、CS102、20
102,CS102,30
102、CS101、10“
rows=[row.splitlines()[1:]
cols=列表(zip(*行))
#行['101',CS101',10'],['101',CS102',20'],['102',CS102',30'],['102',CS101',10']]
#cols[('101','101','102','102'),('CS101','CS102','CS102','CS101'),('10','20','30','10')]
读取行,然后使用zip
通过配对每行以另一种方式读取:
v=“”4
101,CS101,10
101、CS102、20
102,CS102,30
102、CS101、10“
rows=[row.splitlines()[1:]
cols=列表(zip(*行))
#行['101',CS101',10'],['101',CS102',20'],['102',CS102',30'],['102',CS101',10']]
#cols[('101','101','102','102'),('CS101','CS102','CS102','CS101'),('10','20','30','10')]
试试这个:
s = """4
101,CS101,10
101,CS102,20
102,CS102,30
102,CS101,10"""
l = s.replace('4','').replace('\n', ',')[1:].split(',')
cols = [l[n::3] for n in range(int(len(l)/4))]
#[['101', '101', '102', '102'], ['CS101', 'CS102', 'CS102', 'CS101'],
#['10', '20', '30', '10']]
试试这个:
s = """4
101,CS101,10
101,CS102,20
102,CS102,30
102,CS101,10"""
l = s.replace('4','').replace('\n', ',')[1:].split(',')
cols = [l[n::3] for n in range(int(len(l)/4))]
#[['101', '101', '102', '102'], ['CS101', 'CS102', 'CS102', 'CS101'],
#['10', '20', '30', '10']]
你接受的解决方案不是很好,它对你的情况非常具体,它使用循环,在那里它不应该和无用地迭代内容,并且考虑到另一个答案不是最好的,你会考虑为这个选择给出论证吗?也可以考虑其他用户,他们会认为这是一个很好的代码实践,而不是你所接受的解决方案不是很好,它对你的情况非常具体,它使用循环,在那里它不应该和无用地重复内容,并且考虑到另一个答案不是最好的,你会考虑为这个选择辩解吗?还可以考虑其他用户,他们会认为这是一个很好的代码实践,而不是