前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >盘点一个列表处理基础问题(四种方法),最后两种最惊艳!

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

作者头像
Python进阶者
发布2022-06-05 09:24:38
1500
发布2022-06-05 09:24:38
举报
文章被收录于专栏:Python爬虫与数据挖掘

渡远荆门外,来从楚国游。

大家好,我是Python进阶者。

一、前言

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

原文本如下所示:

代码语言:javascript
复制
[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]

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

二、实现过程

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

方法一

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

代码语言:javascript
复制
# coding:utf-8

# @Time : 2022/5/6 11:46
# @Author: 皮皮
# @公众号: Python共享之家
# @website : http://pdcfighting.com/
# @File : 字符串.py
# @Software: PyCharm
letter_list = []
num_list = []
list1 = [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]
for i in list1:
    letter_list.append(i[0])
    num_list.append(i[1])
print(letter_list)
print(num_list)

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

方法二

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

代码语言:javascript
复制
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)

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

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

代码语言:javascript
复制
letter_list, num_list = zip(*list1)
print(letter_list)
print(num_list)

同样可以得到结果,如下图所示:

方法三

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

代码语言:javascript
复制
import pandas as pd
list1 = [('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进行实现,也有些杀猪用牛刀的感觉了。

代码语言:javascript
复制
import numpy as np
list1 = [('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】等人参与学习交流。

小伙伴们,快快用实践一下吧!

------------------- End -------------------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、实现过程
    • 方法一
      • 方法二
        • 方法三
          • 方法四
          • 三、总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档