如何解决使用嵌套列表制作列表列表的pythonic方式
我有一个嵌套列表
mylist = [['a','b','c',['d','e','f'],'g','h',['i','j','k']]]
有什么方法可以使用python获得类似结果
mylist = [['a','d','i'],['a','j'],'f','k']]
解决方法
l = [
[
'a','b','c',['d','e','f'],'g','h',['i','j','k']
]
]
l = l[0]
final = []
count = 0
while count <= 2:
result = []
for i in l:
if not isinstance(i,list):
result.append(i)
else:
result.append(i[count])
count += 1
final.append(result)
print(final)
打印:
[['a','d','i'],['a','j'],'f','k']]
然后,您可以根据需要将final
分配给mylist
。
说明
第一个分配将您提供的列表分配给l
,然后删除多余的嵌套列表。
然后我们定义一些变量,并且有一个嵌套循环。 Count变量用于计算d,e,f和i,j,k迭代,内部for循环将a,b,c,g,h附加到result
以及d,e,f和i中的一个,j,k。在第二次迭代中,它将是e,j,第三次将是f,k,并在每次result
循环迭代中将final
列表追加到while
列表中。
与其他答案类似,除了它可以缩放到更长的嵌套列表。
mylist = [['a','k']]]
counter = 0
tempmylist = []
newmylist = []
nestedlistlength = 0
while True:
for i in mylist[0]:
if type(i) == list:
if len(i) > nestedlistlength:
nestedlistlength = len(i)
try:
tempmylist.append(i[counter])
except:
continue
else:
tempmylist.append(i)
newmylist.append(tempmylist)
tempmylist = []
counter += 1
if counter == nestedlistlength:
break
print(newmylist)
输出:
[['a','k']]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。