首页 > 其他分享 >盘点一个列表处理基础问题(四种方法),最后两种最惊艳!

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

时间:2023-04-23 14:36:35浏览次数:47  
标签:num list1 list 列表 所示 盘点 letter print 惊艳


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

大家好,我是Python进阶者。

本文赠送《轻松学Python》纸质书,活动参与方式见文末。

一、前言

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


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

原文本如下所示:

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

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

二、实现过程

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

方法一

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

# 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)

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


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

方法二

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

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)

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


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

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

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

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

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

方法三

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

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())

但是确实可行,运行结果如下图所示:

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

方法四

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

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)

结果如下图所示:


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

三、总结

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


标签:num,list1,list,列表,所示,盘点,letter,print,惊艳
From: https://blog.51cto.com/u_13389043/6217580

相关文章

  • 盘点一道使用pandas.groupby函数实战的应用题目
    今日鸡汤声喧乱石中,色静深松里。大家好,我是我是Python进阶者。一、前言前几天Python青铜群有个叫【假装新手】的粉丝问了一个数据分析的问题,这里拿出来给大家分享下。一开始以为只是一个简单的去重问题而已,【编程数学钟老师】大佬提出使用set函数,后来有粉丝发现其实没有想的这么简......
  • 盘点几道Python面试题【ChatGPT作答】
    风吹仙袂飘飖举,犹似霓裳羽衣舞。大家好,我是皮皮。一、前言前几天在Python白银交流群看到了几道Python基础题目,这里拿出来给大家分享下,感兴趣的小伙伴可以学习学习。1、字典、元组、列表、集合的区别是什么?2、什么是装饰器,怎么用?3、为什么要有闭包?4、什么是订阅发布模式,写一个demo5......
  • #yyds干货盘点# LeetCode程序员面试金典:搜索旋转排序数组
    题目:整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](下标从0开始计数)。例如,[0,1,2,4,5,6,7]在下标3处......
  • #yyds干货盘点# LeetCode面试题:柱状图中最大的矩形
    1.简述:给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例1:输入:heights=[2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为10示例2:输入:heights=[2,4]输出:42.代码实现:classSolut......
  • #yyds干货盘点#列表推导式
    列表推导式创建列表的方式更简洁。常见的用法为,对序列或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列。例如,创建平方值的列表:>>>squares=[]>>>forxinrange(10):...squares.append(x**2)...>>>squares[0,1,4,......
  • 盘点C# 9.0中好用的特性
    顶级语句将类和类里面Main函数省略,只留下核心的逻辑代码就是顶级语句!1.顶级语句1awaitSystem.Threading.Tasks.Task.Delay(1000);System.Console.WriteLine("Hi!");return0;staticclass$Program{staticasyncTask<int>$Main(string[]args){awai......
  • #yyds干货盘点#区别WebSocket 与 Socket
    WebSocket是什么WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次HTTP握手,两者之间就直接可以创建持久性的连接,并进行双向数......
  • #yyds干货盘点#web端断点续传的思路
    讲断点续传前,咱们先讲讲大文件上传。大文件上传,可能会出现,上传时间过长,接口限制了文件大小。所以,大文件直接上传,也很不友好,一般采用分片上传的方式去上传。而blob提供了slice方法, file继承了blob自然也能使用slice去进行分片处理。处理流程:前端对大文件进行分片,分片名采用文件hash......
  • Java根据ID获取拼多多商品详情 API接口(商品ID、商品标题、价格、原价、昵称、库存、销
    ​ 根据小编对新零售的核心诉求的理解,拼多多其实并不属于新零售实体。而在我国经济红红火火的这个时代,与消费升级并存的对立方向消费降级现象、小镇的中青年的消费偏好、以及一线的消费者复杂甚至相对矛盾的消费特征,和背后由这些消费特征与诉求来决定的电商大格局。Java它是一......
  • #yyds干货盘点# LeetCode程序员面试金典:最长有效括号
    题目:给你一个只包含'(' 和')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例1:输入:s="(()"输出:2解释:最长有效括号子串是"()"示例2:输入:s=")()())"输出:4解释:最长有效括号子串是"()()"示例3:输入:s=""输出:0代码实现:classSolution{publicint......