美文网首页
Python-列表+-01-两个列表各元素合并

Python-列表+-01-两个列表各元素合并

作者: Data_Python_VBA | 来源:发表于2020-02-18 21:17 被阅读0次

    微信公众号原文

    系统:Windows 7
    语言版本:Anaconda3-4.3.0.1-Windows-x86_64
    编辑器:pycharm-community-2016.3.2

    • 这个系列讲讲Python对列表的一些实用操作
    • 本文介绍:两个列表各元素进行字符串的组合

    Part 1:示例说明

    1. 已知列表list_a = [1, 2, 3, 4],列表list_b = ['a', 'b', 'c', 'd']
    2. 想获取如下结果['1+a', '2+b', '3+c', '4+d'],其实就是上面两个列表每个对应元素分别进行如下操作str(a) + "+" + b
    3. 那么如何实现该结果呢?

    Part 2:方法1

    1. 创建一个空列表list_a_b
    2. 对任一列表(这里使用list_a)进行enumerate方式遍历,获取其每个元素的值a,再根据位置信息获取另外一个列表对应元素b,2个元素进行运算输出c
    3. 将每一个c追加到列表list_a_b
    4. 代码如下:
    list_a = [1, 2, 3, 4]
    list_b = ['a', 'b', 'c', 'd']
    
    # 方法1
    list_a_b = []
    
    for i, e in enumerate(list_a):
        a = e
        b = list_b[i]
        c = str(a) + "+" + b
        list_a_b.append(c)
    
    print(list_a_b)
    

    代码截图

    2.png

    输出结果

    1.png

    Part 3:方法2

    1. 之前的方法过于复杂,这种循环遍历的方法有没有想起列表推导式,采用其升级方法list_a_b = [str(a) + "+" + b for a, b in zip(list_a, list_b)]
    2. 完整代码如下
    list_a = [1, 2, 3, 4]
    list_b = ['a', 'b', 'c', 'd']
    
    # 方法2
    list_a_b = [str(a) + "+" + b for a, b in zip(list_a, list_b)]
    
    print(list_a_b)
    

    Part 4:部分代码解读

    1. list_a_b = [str(a) + "+" + b for a, b in zip(list_a, list_b)]核心在于zip(list_a, list_b)
    2. zip实现了一个打包的效果,将每个列表每个相同位置的元素进行组合,生成一个新的对象,这个对象可以通过list函数转换为每个元素是一个元组的列表。
    3. 我们看以下代码实现什么效果,进而更具体的了解zip
    list_a = [1, 2, 3, 4]
    list_b = ['a', 'b', 'c', 'd']
    list_c = ['a', 'b', 'c', 'd']
    
    
    a_b = zip(list_a, list_b)
    print(a_b)
    list_a_b = list(a_b)
    print(list_a_b)
    
    a_b_c = zip(list_a, list_b, list_c)
    print(a_b_c)
    list_a_b_c = list(a_b_c)
    print(list_a_b_c)
    
    

    运行结果

    3.png

    本文为原创作品,欢迎分享朋友圈

    长按图片识别二维码,关注本公众号
    Python 优雅 帅气


    12x0.8.jpg

    相关文章

      网友评论

          本文标题:Python-列表+-01-两个列表各元素合并

          本文链接:https://www.haomeiwen.com/subject/grynfhtx.html