微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何拆分嵌套列表元素的第一个元素?

如何解决如何拆分嵌套列表元素的第一个元素?

假设我们有:

test = [['word.II',123,234],['word.IV',321,123],['word.XX',345,345],['word.XIV',432]
   ]

如何拆分测试中的第一个元素,以便结果为:

test = [['word','II',['word','IV','XX','XIV',432]
   ]  

其中包括我尝试过的:

test = [[row[0].split('.'),row[1],row[2]] for row in test],

但这会导致:

[['word','II'],234]
[['word','IV'],123]
[['word','XX'],345]
[['word','XIV'],432] 

解决方法

这是一种方法:

new_test = [row[0].split('.')+ row[1:] for row in test]

+ 运算符连接列表,例如:

>>>[2,3,4] + [1,5]
[2,4,1,5]
,

一种方法是使用 split 拆分第一个元素(就像您所做的那样!),然后使用 + 运算符将其连接到列表的其余部分:

result = [row[0].split('.') + row[1::] for row in test]
,

试试这个解决方案:

list(map(lambda x:x[0].split('.')+x[1:],test))
,

使用 extended iterable unpacking 和列表添加:

spam = [['word.II',123,234],['word.IV',321,123],['word.XX',345,345],['word.XIV',432]]


eggs = [first.split('.') + rest for first,*rest in spam]
print(eggs)

输出:

[['word','II',['word','IV','XX','XIV',432]]
,

这也有效:

test = [[row[0].split('.')[0],row[0].split('.')[1],row[1],row[2]] for row in test]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?