Python:如何通过减少行数来优化列表结果?这个问题已经用zip回答了

如何解决Python:如何通过减少行数来优化列表结果?这个问题已经用zip回答了

我有以下列表:

rows= ['Azuay','10,658','195','12','Bolívar','2,111','66','Cañar',110','83','7','Carchi','3,053','104','1','Chimborazo',516','315','119','Cotopaxi','4,575','281','61','El Oro','6,477','466','185','Esmeraldas',271','216','51','galápagos','227','Guayas','22,263','1,737',651','Imbabura',773','170','Loja',227','222','44','Los Ríos',017','342','237','Manabí','11,284',025',033','Morona Santiago',008','22','0','Napo',440','74','2','Orellana',956','53','17','Pastaza',258','60','15','Pichincha','59,789','242','Santa Elena',738','368','274','Santo Domingo de los Tsáchilas','5,293','361','116','Sucumbíos',763','92','Tungurahua',119','276','223','Zamora Chinchipe',580','1']

I want to convert it to :

[['Azuay','12'],['Bolívar',['Cañar','7'],['Carchi','1'],['Chimborazo','119'],['Cotopaxi','61'],['Esmeraldas','51'],['galápagos',['Guayas',651'],['Imbabura',['Loja','44'],['Manabí',033'],['Napo','2'],['Orellana','17'],['Pastaza','15'],['Pichincha','242'],['Sucumbíos',['Tungurahua','223'],['Zamora Chinchipe','1']]

我正在使用此代码(在下面进行检查)以获得此结果;但是,我想对其进行优化。

dict_kv=[]
for i in range(0,len(rows)):
  if (rows[i].strip().isalpha()):  
    dict_kv.append([rows[i],rows[i+1],rows[i+2],rows[i+3]])
    
  
dict_kv.append([rows[92],rows[93],rows[94],rows[95]])  s
      
pprint(dict_kv)

解决方法

这是一种常见的模式,itertools recipes中有一个条目。

def grouper(iterable,n,fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG',3,'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return zip_longest(*args,fillvalue=fillvalue)

您将其用作:

result = grouper(rows,4)
,

您可以使用以下简单的list comprehension

rows= ['Azuay','10,658','195','12','Bolívar','2,111','66','Cañar',110','83','7','Carchi','3,053','104','1','Chimborazo',516','315','119','Cotopaxi','4,575','281','61','El Oro','6,477','466','185','Esmeraldas',271','216','51','Galápagos','227','Guayas','22,263','1,737',651','Imbabura',773','170','Loja',227','222','44','Los Ríos',017','342','237','Manabí','11,284',025',033','Morona Santiago',008','22','0','Napo',440','74','2','Orellana',956','53','17','Pastaza',258','60','15','Pichincha','59,789','242','Santa Elena',738','368','274','Santo Domingo de los Tsáchilas','5,293','361','116','Sucumbíos',763','92','Tungurahua',119','276','223','Zamora Chinchipe',580','1']
rows = [rows[x:x+4] for x in range(0,len(rows),4)]
print(rows)

输出:

[['Azuay','12'],['Bolívar',['Cañar','7'],['Carchi','1'],['Chimborazo','119'],['Cotopaxi','61'],['El Oro','185'],['Esmeraldas','51'],['Galápagos',['Guayas',651'],['Imbabura',['Loja','44'],['Los Ríos','237'],['Manabí',033'],['Morona Santiago','0'],['Napo','2'],['Orellana','17'],['Pastaza','15'],['Pichincha','242'],['Santa Elena','274'],['Santo Domingo de los Tsáchilas','116'],['Sucumbíos',['Tungurahua','223'],['Zamora Chinchipe','1']]
,

使用numpy

import numpy as np
rows= ['Azuay','1']
r = np.array(rows).reshape(-1,4).tolist()

输出:

[['Azuay','1']]
,
df <- df %>%
   mutate(
     `TE-iL` = case_when(`HB>TE-iL` == 1 ~ 0),`TE-iL^` = case_when(`HB>TE-iL` == 1 ~ 0)
   )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 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”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?