Python-输入、列表与字符串之间的转换、zip使用

作为笔试的简单输入

从键盘的输入是字符串,所以需要转为int类型

一行有两个数字:

n,k=map(int,input().split())

一行以空格表示隔开:

如:‘5 3 8 2 5’ --> [5, 3, 8, 2, 5]

nums=[int(i) for i in input().split()]

 

字符串转为数字的列表:

如:'787585' --> [7,8,7,5,8,5]

nums=input()
nums=list(map(int,nums))

 

数字转为数字的列表,即求数字各个位上的数:

如:568-->[5,6,8]

num=568
num1=list(map(int,list(str(num))))

反之:将数字列表转化为数字字符串

[5,6,8] --> '568'

num=[5,6,8]
res1=''.join(map(str,num))
res2=''.join([str(i) for i in num])#另解

 

 

发现zip的用处还蛮多的

1. 用zip生成字典

keys=[i for i in range(3)]
values=['a','b','c']
dic=dict(zip(keys,values))

>> dic={0: 'a', 1: 'b', 2: 'c'}

但是字典的keys不能重复

2. 用zip实现对应的两个数组的各元素相减

nums1=[2,3,4,5,6]
nums2=[1,1,1,1,1]
diff=list(map(lambda x:x[0]-x[1], zip(nums1,nums2)))

 >>diff=[1, 2, 3, 4, 5]

3. 矩阵转置

a=[[1,2,3],[4,5,6],[7,8,9]]
a_T=list(map(list,zip(*a)))

>>a_T=[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

注意:*a=[1, 2, 3] [4, 5, 6] [7, 8, 9]

            如果直接list(zip(*a)),返回的是[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

 

posted @   Nooni  阅读(832)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
点击右上角即可分享
微信分享提示