# yyds干货盘点 # 盘点一个列表处理基础问题(四种方法),最后两种最惊艳!

网友投稿 253 2022-09-04


# yyds干货盘点 # 盘点一个列表处理基础问题(四种方法),最后两种最惊艳!

大家好,我是Python进阶者。

一、前言

昨天在Python最强王者群有个叫【老松鼠】的粉丝问了一道关于列表处理的问题,如下图所示。

原文本如下所示:

[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]

把这个列表分拆成两个单独的列表。

二、实现过程

这里一共四个方法,欢迎继续尝试!

方法一

这里我自己给了一个常规思路解法,将列表强行拆解为两个列表。

这个代码亲测好使,运行之后结果如下。

方法二

这里【月神】给了一份代码,使用解包的方式进行实现:

list1 = [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]list_result = tuple(zip(*list1))letter_list = list(list_result[0])num_list = list(list_result[1])print(letter_list)print(num_list)

代码运行之后,结果如下图所示:

当然解包也可以写成比较简洁的形式,如下所示:

letter_list, num_list = zip(*list1)print(letter_list)print(num_list)

方法三

这里【瑜亮老师】给了一份代码,使用​​pandas​​进行实现,有些杀猪用牛刀的感觉了。

import pandas as pdlist1 = [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]df = pd.DataFrame(list1)print(df[0].tolist())print(df[1].tolist())

方法四

这里【月神】又给了一份代码,使用​​numpy​​进行实现,也有些杀猪用牛刀的感觉了。

import numpy as nplist1 = [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]letter_list, num_list = np.array(list1).T.tolist()print(letter_list)print(num_list)

结果如下图所示:

三、总结

大家好,我是Python进阶者。这篇文章主要盘点一个列表处理基础问题,文中给出了四个方法,思路基本上都是一致的,如果你还有其他方法,也欢迎大家积极尝试,一起学习,记得分享给我哦。

最后感谢粉丝【老松鼠】提问,感谢【dcpeng】、【月神】、【瑜亮老师】在运行过程中给出的思路和代码,感谢粉丝【冷喵】、【Chloe】等人参与学习交流。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JAVA递归生成树形菜单的实现过程
下一篇:【王道Java】网络编程实战详解二(网络编程java常用方法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~