专栏首页Python工程师Python-列表+-01-两个列表各元素合并

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

系统: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)

代码截图

输出结果

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)

运行结果

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

本文分享自微信公众号 - Python工程师(DatenSpiel),作者:壹章VBA

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python-排序-02-列表排序

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

    zishendianxia
  • 【项目实战】自监控-02-os

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

    zishendianxia
  • Python-测试-unittest-04-测试结果文件输出

    zishendianxia
  • 经典排序算法和python详解(二):冒泡排序、双向冒泡排序、插入排序和希尔排序

    一、冒泡排序(Bubble Sort)二、冒泡排序法改进三、双向冒泡排序法四、插入排序五、希尔排序(插入排序改进)

    Minerva
  • [LeetCode] 119. Pascal's Triangle II

    【原题】 Given an index k, return the kth row of the Pascal’s triangle. For exampl...

    用户1148830
  • python---集合

    py3study
  • Python中赋值、浅拷贝与深拷贝

       python中关于对象复制有三种类型的使用方式,赋值、浅拷贝与深拷贝。他们既有区别又有联系,刚好最近碰到这一类的问题,研究下。 一、赋值         ...

    用户1214487
  • Python11 集合

    使用discard删除,与remove不同的是,如果删除的元素不存在,discard不会报错。

    py3study
  • Python 嵌套列表展开

    问题1:对于列表形如 list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]] 转化成列表 list_2 = [1, 2, ...

    py3study
  • Python list(列表)

    Python一共有6种序列的内置类型,list和tuple是其中最常见的。6种序列的都可以进行的操作包括索引、切片,加(实际上是连接),乘(实际上是复制)...

    Steve Wang

扫码关注云+社区

领取腾讯云代金券