zoukankan      html  css  js  c++  java
  • 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)]

    欲望才是原动力
  • 相关阅读:
    Java.io 包(字节流)
    Java 集合框架(常用数据结构)
    Java.util 包(Date 类、Calendar类、Random类)
    Java.lang 包 (包装类、String类、Math类、Class类、Object类)
    Java 多态(接口)
    maxcompute troubleshoot
    maxcompute
    文件命名
    weblogic修改ServerName
    设计模式---策略模式
  • 原文地址:https://www.cnblogs.com/Nooni/p/12673081.html
Copyright © 2011-2022 走看看