首页 > 编程语言 >python-zip

python-zip

时间:2023-04-13 12:57:14浏览次数:37  
标签:11 zip python xyz list grid print

python-zip

zip()是Python的一个内建函数

定义:zip([iterable, ...])   zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。

若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。

传入两个参数

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
 
xyz = zip(x, y, z)
print(xyz)
 
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
a = ['a', 'b', 'c', 'd']
b = ['1', '2', '3', '4']

result = zip(a, b)
print(list(result))
[('a', '1'), ('b', '2'), ('c', '3'), ('d', '4')]

传入一个参数

grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1,0]]
print(list(zip(grid)))     
# [([3, 0, 8, 4],), ([2, 4, 5, 7],), ([9, 2, 6, 3],), ([0, 3, 1, 0],)]


print(list(zip(*grid)))
# [(3, 2, 9, 0), (0, 4, 2, 3), (8, 5, 6, 1), (4, 7, 3, 0)]

输入数据不等长时

grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1]]
print(list(zip(grid)))    
[([3, 0, 8, 4],), ([2, 4, 5, 7],), ([9, 2, 6, 3],), ([0, 3, 1],)]

grid = [[3,0,8,4],[2,4,5,7],[9,2,6,3],[0,3,1]]
print(list(zip(*grid)))
# [(3, 2, 9, 0), (0, 4, 2, 3), (8, 5, 6, 1)]

对数据排序

names = ['John', 'Amy', 'Jack']
scores = [98, 100, 85]  # 分数和名字是一一对应的

data = list(zip(names, scores))
data.sort()
print(data)
[('Amy', 100), ('Jack', 85), ('John', 98)]


data2 = list(zip(scores, names))
data2.sort()
print(data2)
[(85, 'Jack'), (98, 'John'), (100, 'Amy')]


输入数据不等长

输出取决于最短的数据

x = [1, 2, 3]
y = [4, 5, 6, 11]
z = [7, 8, 9, 10]
 
xyz = zip(x, y, z)
print xyz运行的结果是:
 
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

1 11
2 12
3 13

处理不等长数据可以内置zip_longest代替

使用itertools包中的zip_longest,使用方法如下:

from itertools import zip_longest
a = [1,2,3,4,5,6]
b = [11,12,13]

for i,j in zip_longest(a,b):
	print(i,j)
	
	
1 11
2 12
3 13
4 None
5 None
6 None

标签:11,zip,python,xyz,list,grid,print
From: https://www.cnblogs.com/tian777/p/17314318.html

相关文章

  • 笨办法学 Python · 续 练习 3:质量
    练习3:质量原文:Exercise3:OnQuality译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译我将提出一个关于认知的科学理论,我并不能证明它:你所做事情的记忆,会让你思考最终产品,这是正确的行为。这基于我所做的,几乎每一个创造性的事情的观察,它是这样:你创造的东西需要很长一段时间。这可......
  • 笨办法学 Python · 续 练习 9:`sed`
    练习9:sed原文:Exercise9:sed译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译使用这些小型项目来研究你自己是有用的,但让我们来看看你主要关注的主题:开始工作的启动流程,例如你的文本编辑器,你可以打字打的多好,以及计算机内部发生的其他事情。心理状态,当你开始工作时,建议将日志作为......
  • 笨办法学 Python · 续 练习 7:`grep`
    练习7:grep原文:Exercise7:grep译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译find命令在45分钟内应该可能是一个挑战,但它是一个很好的挑战。到了这个时间,你应该可以去掉尽可能多的,阻止你开始的障碍。你可能会发现,当你清除一些障碍时,你的技能会变得更糟。例如,我以前在开始工作......
  • 笨办法学 Python · 续 练习 8:`cut`
    练习8:cut原文:Exercise8:cut译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译希望你正在深入学习Python,甚至了解你自己和你的工作方式。在本书的这一部分,通过学习如何优化你的流程,你学到了流程和创造力的一些事情。的确,有阻碍的情况下你不能发挥创造力,但是你应该意识到,改善自己......
  • 笨办法学 Python · 续 练习 4:处理命令行参数
    练习4:处理命令行参数原文:Exercise4:DealingwithCommandLineArguments译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在你能处理本书的第一部分之前,你需要完成一些简单的黑魔法,教你如何使用Python中的命令行参数。传统上我们称这种黑魔法为“spike”。该术语来自于一个小......
  • 笨办法学 Python · 续 练习 11:`uniq`
    练习11:uniq原文:Exercise11:uniq译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译在最后两个练习的开始,没有什么可说的了。你应该知道如何思考你的工作环境,你如何开始,你如何坐下来,影响你开始的任何事情。你也应该使用这些小小的45分钟的项目,突破了起始状态。如果你还没有弄清楚......
  • python
    关于做题过程中不熟悉的函数进行的总结基础语法深浅拷贝python基于值管理,如a=2表明a指向值为2的内存空间,若a+=1,则a改变指向,也就是取出a的值加一放于新内存,a指向新内存变量的赋值操作:只是形成两个变量,实际上还是指向同一个对象a=b=1:a是b的别名(可以理解为ab存放同一个......
  • 深度学习检测不准确智能电表:一个案例研究 python源代码
    深度学习检测不准确智能电表:一个案例研究python源代码,代码按照高水平文章复现,保证正确根据用电情况检测出故障的智能电表,并针对其进行更换,可以节省大量的资源。为此,我们开发了一种基于长短期记忆(long-termmemory,LSTM)和改进的卷积神经网络(convolutionalneuralnetwork,......
  • 电力系统的物理信息神经网络python源代码 介绍了一种在电力系统中应用物理信息神经网
    电力系统的物理信息神经网络python源代码代码按照高水平文章复现介绍了一种在电力系统中应用物理信息神经网络的框架。利用控制电力系统的基本物理定律,并受到机器学习领域最新发展的启发,我们提出了一种神经网络训练程序,它可以利用广泛的数学模型来描述电力系统的行为,包括稳态和......
  • 基于大数据的人工神经网络高效发电预测系统 python源代码 提出了一种发电预测方案,该方
    基于大数据的人工神经网络高效发电预测系统python源代码,代码按照高水平文章复现,保证正确提出了一种发电预测方案,该方案能够以接近耗电量的速度预测所需的电量。该方案使用大数据分析来处理每个州在过去20年收集的电力管理数据。然后使用神经网络(NN)模型训练系统,根据收集的数......