首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字符串到列表的转换中挣扎

在字符串到列表的转换中挣扎
EN

Stack Overflow用户
提问于 2021-03-13 02:23:13
回答 2查看 36关注 0票数 0

我得到了字符串格式的输入:

代码语言:javascript
复制
"""4
101,CS101,10
101,CS102,20
102,CS102,30
102,CS101,10"""

我想要将它转换为一个格式的列表

代码语言:javascript
复制
[["101","101","102","102"], ["CS101","CS102","CS102","CS101"], ["10","20","30","10"]]

我试着使用zip,但做不到。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-13 02:25:08

读取行,然后使用zip将每一行配对,以另一种方式读取:

代码语言:javascript
复制
v = """4
101,CS101,10
101,CS102,20
102,CS102,30
102,CS101,10"""

rows = [row.split(',') for row in v.splitlines()[1:]]
cols = list(zip(*rows))

# rows [['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')]
票数 2
EN

Stack Overflow用户

发布于 2021-03-13 02:40:45

试试这个:

代码语言:javascript
复制
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']]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66605268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档