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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM