• 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运行时内存
    java --对象流与对象的序列化
    Java 文件操作
    爬虫
    eclipse项目放到github
    越来越玄的JAVA
    map和set的遍历
    集合总览
    unsafe类
    狡诈的java并发容器
  • 原文地址:https://www.cnblogs.com/Nooni/p/12673081.html
Copyright © 2020-2023  润新知