我有

a = [1, 2]

b = ['a', 'b']

我想要

c = [1, 'a', 2, 'b']

@cdleary's answer stackoverflow.com/questions/406121/…为"在python中扁平化一个浅列表"的各种方法提供性能比较(扁平化zip(a,b)为您提供了答案)。

[j for i in zip(a,b) for j in i]

它是有效的,但我不能在头脑中分析它…

[J代表J代表I,I代表I代表Zip(A,B)]尽管在我的头脑中更容易解析并不管用!

一开始读起来确实很奇怪:(1)精神上切掉第一个for的所有东西,把它移到最后,然后读到:for i in zip(a, b)、for j in i、j。

啊……整洁!谢谢。

整洁,但如果一个列表比另一个短1个元素(仍然应该能够合并),则不起作用。

为什么不对列表使用串联:result=a+b。这也是你能读到的!

@拉尔夫,这取决于您的订购要求。

@约翰洛伊,没错。没有提到顺序和重复;)如果顺序起作用,那么我会说,用mark的itertool链这个例子是很好的。顺便说一句,通过set()可以避免重复。

如果元素的顺序与示例中的顺序非常匹配,则可以使用zip和chain的组合:

from itertools import chain

c = list(chain(*zip(a,b)))

如果您不关心结果中元素的顺序,那么有一种更简单的方法:

c = a + b

在我的例子中使用这个:"c=a+b"->列表是不可重复的。那么呢?只有Chain可以检查我的问题以了解我的问题:"stackoverflow.com/questions/40952892/…"

对于索引,datas.iterrows()中的行:textf=re.findall('f(.*?)}}",row['review'])matrixf+=textf如果index==3:break for index in matrixf:print index,它仍然有效,所以我认为它仍然是不可更改的?"。

有一条链,来自于"Iterable:EDOCX1"(0),这是一种非常懒惰的方式。

正在分析

[j for i in zip(a,b) for j in i]

如果你记得for和if条款是按顺序完成的,然后是结果的最后一个附加,那么在你的头脑中就足够容易了:

temp = []

for i in zip(a, b):

for j in i:

temp.append(j)

如果它是用更有意义的变量名来写的话会更容易些:

[item for pair in zip(a, b) for item in pair]

我通常对Les很满意,但是这个双循环让我很困惑。谢谢你的解释。

另一种方法是使用索引切片,结果发现它比Zip更快,扩展性更好:

def slicezip(a, b):

result = [0]*(len(a)+len(b))

result[::2] = a

result[1::2] = b

return result

您会注意到,这只在len(a) == len(b)的情况下有效,但是使用模拟zip的条件不能用a或b进行缩放。

进行比较:

a = range(100)

b = range(100)

%timeit [j for i in zip(a,b) for j in i]

100000 loops, best of 3: 15.4 μs per loop

%timeit list(chain(*zip(a,b)))

100000 loops, best of 3: 11.9 μs per loop

%timeit slicezip(a,b)

100000 loops, best of 3: 2.76 μs per loop

您所说的"将条件模拟为zip,而不是使用a或b进行缩放"是什么意思?

我的意思是,使用zip,如果一个列表比另一个长,那么较长的列表会被截断,以便与较短的列表合并。我们可以通过比较每个数组的长度,然后只分配较长数组的缩短版本来实现这一点。如果数组变大,那么对长度和截断的检查就不再需要花费时间了。

注:这对于有利于第一个列表的平分目的很有效:它允许长度相同或比第二个slicezip([1,2,3],[4,5])长一个,这意味着在这种情况下,您不必处理不均匀的列表(这非常好)。

如果您关心订单:

#import operator

import itertools

a = [1,2]

b = ['a','b']

#c = list(reduce(operator.add,zip(a,b))) # slow.

c = list(itertools.chain.from_iterable(zip(a,b))) # better.

print c给[1, 'a', 2, 'b']。

-1表示二次时间。你可以在线性时间内做到这一点。

@阿龙·加拉赫修好了,但还是有一个(巧妙地)独特的答案。

这里有一个标准/自我解释的解决方案,我希望有人会发现它有用:

a = ['a', 'b', 'c']

b = ['1', '2', '3']

c = []

for x, y in zip(a, b):

c.append(x)

c.append(y)

print (c)

输出:

['a', '1', 'b', '2', 'c', '3']

当然,如果需要,您可以更改它并对值进行操作。

def main():

drinks = ["Johnnie Walker","Jose Cuervo","Jim Beam","Jack Daniels,"]

booze = [1, 2, 3, 4, 5]

num_drinks = []

x = 0

for i in booze:

if x < len(drinks):

num_drinks.append(drinks[x])

num_drinks.append(booze[x])

x += 1

else:

print(num_drinks)

return

主体()

请你解释一下你的答案。

5轮后你有没有想出这个答案?

c = []

c.extend(a)

c.extend(b)

期望的结果完全不同。

虽然这段代码可以回答这个问题,但是提供关于如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。

如果它回答了问题,并且与所有其他答案不同,为什么不支持它呢?我相信这个问题没有太多的背景,所以任何相关的答案都是受欢迎的。

python中合并列表_关于python:如何将两个列表合并到一个列表中?相关推荐

  1. python tkinter计算器实例_使用Python自带GUI tkinter编写一个期权价格计算器

    0 准备工作 首先,确认环境中有numpy.scipy.stats和tkinter三个功能包.前两个功能包可用于Python的数学计算,比如使用numpy来生成随机数用于Monte Carlo模拟,以 ...

  2. python 布莱克舒尔斯_使用Python自带GUI tkinter编写一个期权价格计算器

    0 准备工作 首先,确认环境中有numpy.scipy.stats和tkinter三个功能包.前两个功能包可用于Python的数学计算,比如使用numpy来生成随机数用于Monte Carlo模拟,以 ...

  3. python什么是数据结构_〖Python〗-- 数据结构

    [数据结构] 什么是数据结构? 定义:简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中.比如:列表.集合与字典等都是一种数据结构. PS:"程序=数据结构+算法" 列表 ...

  4. python第k序元素查找列表_【Python】第8次练习:列表——程序填空题 -合并队列、列表元素零的移动、列表逆序输出、第K序元素查找...

    [Python]第8次练习:列表--程序填空题 -合并队列.列表元素"零"的移动.列表逆序输出.第K序元素查找 1.程序填空题 -合并队列 题目:某班男女两队同学各若干人,男生已按 ...

  5. python生成多个随机数列表_在python中生成1到6之间的6个随机数的列表

    使用 list comprehension: import random def startTheGame(): mylist=[random.randint(1, 6) for _ in range ...

  6. python如何创建一个列表_在python中创建列表的最佳和/或最快方法

    在python中,据我所知,至少有3到4种方法来创建和初始化给定大小的列表: 简单循环append: my_list =[]fori inrange(50):my_list.append(0) 简单循 ...

  7. python 判断数字连续_关于python:检测列表中的连续整数

    本问题已经有最佳答案,请猛点这里访问. 我有一个包含这样的数据的列表: [1, 2, 3, 4, 7, 8, 10, 11, 12, 13, 14] 我想打印出连续整数的范围: 1-4, 7-8, 1 ...

  8. python如何创建一个列表_使用python中的format()创建一个列表(make a list using format() in python)...

    使用python中的format()创建一个列表(make a list using format() in python) 我是python和编码的新手. 因此,如果已经讨论过这件事,我很抱歉,我无 ...

  9. python 获取唯一值_从Python列表中获取唯一值

    python 获取唯一值 In this article, we will be understanding 3 ways to get unique values from a Python lis ...

最新文章

  1. addroutes刷新_vue 解决addRoutes动态添加路由后刷新失效问题
  2. Cracking The Coding Interview5.2
  3. java解析xml生成表格_JAVA读取XML文件并解析 以及 JAVA生成文本文件输出
  4. Exynos4412 Uboot 移植(一)—— Uboot 编译流程分析
  5. win7/8/10安装过程中将动态磁盘转为basic
  6. 雅克德罗机器人_什么腕表配饰值得买 带货明星们都已经帮你选好了
  7. 现在自驾旅游吃住有没有问题?
  8. Python 玩出花了!一文教你用 Python 制作吃豆人游戏! | 附代码
  9. BM求线性递推模板(杜教版)
  10. python3.7帮助文档,文档说明 · Python3.7.3官方文档 简体中文 · 看云
  11. linux下软件安装的四种方法
  12. 树莓派CM4 装系统和换源
  13. U盘安装Fedora 24时出现的几个问题及解决办法
  14. 用Python中的py2neo库操作neo4j,搭建简单关联图谱—基于家有儿女中的人物关系
  15. 记录一次docker基础操作错误Error response from daemon: You cannot remove a running container
  16. 移动智能终端可信环境分析
  17. UnicodeDecodeError: 'gbk' codec can't decode byte 0x91 in position 8: illegal multibyte sequence
  18. Chrome Custom Tabs最佳实践
  19. 2021届 联发科技视频一面 嵌入式软件
  20. 网易严选上半年开设线下店?说好不学无印良品的

热门文章

  1. 报错, nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException
  2. 报错,npm ERR! code ENOLOCAL
  3. 浅谈数学中的化归原则
  4. Java讲课笔记17:Lambda表达式
  5. 【BZOJ1026】windy数,数位DP
  6. 重启服务器导致网站系统错误,win10怎么总是莫名其妙重启?_网站服务器运行维护...
  7. bzoj4819 [Sdoi2017]新生舞会 分数规划(实数二分)+网络流检验
  8. 【英语学习】【WOTD】animadversion 释义/词源/示例
  9. 微服务开发过程中需要注意的若干事项
  10. [转]CentOS6.4下Mysql数据库的安装与配置