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

作为笔试的简单输入

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

一行有两个数字:

n,k=input().strip().split()
n=int(n);k=int(k)

字符串转为数字的列表:

如:'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'

num1=[5,6,8]
num=''.join(map(str,num1))

发现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)]

猜你喜欢

转载自www.cnblogs.com/Nooni/p/12673081.html