python - 将两个整数列表组合成一个字符串列表

标签 python list-comprehension

编辑:我已经意识到我的错误(if 语句,变量 x 被分配给字符串中的元素,我正在与列表的长度进行比较)。明天早上试图解决这个问题。为这个愚蠢的错误道歉,但我会很感激任何一点学习。

我正在尝试将两个列表合并为一个列表。

 m = [1,2,3]
 n = [4,5,6]
 v = m+n

 def myFun():
   return [(str(x)+str(y)) for x in m if x < len(m) for y in n if y < len(n)]

 print(myFun())

myFun() 的结果应该显示“14, 25, 36”

我还尝试将代码分解为一个更像 Python 的世界,并且看到了我误入歧途的地方:

 def my(fun()):
   for x in m if x < len(m):
     for y in n if y < len(n): # problem here, running until count 9 instead of 3
                               # like it's supposed to.. author error.. 
       newlist.append(str(x)+str(y))
   print(newlist)

我的方向是否正确,或者我是否应该尝试构建 map ,我看到几页说如果您必须使用 list-comp 或 lambda 进行反转, map 可能会适得其反?此外,是否可以计算列表理解/lambda 中的特定对象? (例如列表长度)?

最佳答案

使用zip():

In [8]: m = [1,2,3]

In [9]: n = [4,5,6]

In [10]: [str(x)+str(y) for x,y in zip(m,n)]
Out[10]: ['14', '25', '36']

或者如果列表的长度不同,则使用 itertools.izip_longest():

In [2]: m=[1,2,3]

In [3]: n=[4,5,6,7]

In [4]: from itertools import izip_longest

In [5]: [str(x)+str(y) for x,y in izip_longest(m,n,fillvalue="")]
Out[5]: ['14', '25', '36', '7']

关于python - 将两个整数列表组合成一个字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13099478/

相关文章:

python - 我无法从集合中删除日期时间对象?

python - 具有变量值的 Django 查询集

使用 tkinter 的 Python 棋盘游戏

python - Python 中的进程间内存文件系统?

python - 理解展平一系列序列?

python - 带范围的字典理解

python : Extending Exception class

python - 使用 sys.argv 检索不同的函数

python - 使用 for 循环与列表理解来优化代码

用于创建多个列表的 Python 列表推导