python - 将列表扩展为列表

标签 python python-2.7 list-comprehension

如果 List1 中的元素等于 List2 中的项目,我将尝试将值扩展到列表。我使用扩展而不是追加,因为扩展应该合并两个列表。相反,它似乎是嵌套列表。

删除 y[1],y[2] 周围的括号会产生:

语法错误:如果不是唯一参数,则生成器表达式必须加括号

List1 = [['value1','value2','Value3'],['value4','value5','value6']]
List2 = [['option1','option2','value2'],['option3','option4','value5']]

for x in List1:
    x.extend([y[1],y[2]] for y in List2 if y[2] == x[1])
print List1

我的输出:

[['value1', 'value2', 'Value3', ['option2', 'value2']], ['value4', 'value5', 'value6', ['option4', 'value5']]]

期望的输出:

[['value1', 'value2', 'Value3', 'option2', 'value2'], ['value4', 'value5', 'value6', 'option4', 'value5']]

最佳答案

as [[y[1],y[2]] for y in List2 if y[2] == x[1]] 返回列表的列表

>>> List1 = [['value1','value2','Value3'],['value4','value5','value6']]
>>> List2 = [['option1','option2','value2'],['option3','option4','value5']]
>>> for x in List1:
...    [[y[1],y[2]] for y in List2 if y[2] == x[1]]
... 
[['option2', 'value2']]
[['option4', 'value5']]

因此从列表中获取第一项以在 x 中扩展

>>> List1 = [['value1','value2','Value3'],['value4','value5','value6']]
>>> List2 = [['option1','option2','value2'],['option3','option4','value5']]
>>> for x in List1:
...     x.extend([[y[1],y[2]] for y in List2 if y[2] == x[1]][0])
... 
>>> List1
[['value1', 'value2', 'Value3', 'option2', 'value2'], ['value4', 'value5', 'value6', 'option4', 'value5']]
>>> 

Python初学者 逐行扩展上面的代码。

  1. 使用 for 循环迭代 List1 和 List2 中的项目
  2. 如果条件检查值。
  3. 使用列表扩展方法将列表项追加到现有列表中。

代码:

>>> List1 = [['value1','value2','Value3'],['value4','value5','value6']]
>>> List2 = [['option1','option2','value2'],['option3','option4','value5']]
>>> 
>>> for x in List1:
...     for y in List2:
...             if y[2]==x[1]:
...                     print "In if value:", [y[1],y[2]]
...                     x.extend([y[1],y[2]])
... 
In if value: ['option2', 'value2']
In if value: ['option4', 'value5']
>>> List1
[['value1', 'value2', 'Value3', 'option2', 'value2'], ['value4', 'value5', 'value6', 'option4', 'value5']]
>>> 

关于python - 将列表扩展为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727967/

相关文章:

python - 如何有效地检索 groupby 对象作为 pd.Series 的函数

python - 更改 Pandas 条形图中的错误条标记(Caplines)

python - 在 python 中使用多处理优化大数组的处理

python - 有条件地切片列表

python - 如何在 python 中评估列表理解以及以什么顺序

python - 列表理解和循环之间的区别

python - 非递归地将列表转换为 numpy.array

python - 将 subprocess.Popen 的标准输出逐行保存到文件

python - 文件如何在磁盘上打乱而不加载到内存中

python - 压缩文件有额外不需要的文件夹