python - 列表理解内的可变范围

标签 python list variables scope list-comprehension

我有一个元组列表,其中包含一个字符串和另一个列表;

[('string1', ['a1', 'b1']),
 ('string2', ['a2', 'b2']),
 ('string3', ['a3', 'b3'])]

我无法弄清楚如何使用列表理解来得出类似的东西;

[['string1a1', 'string1b1'],
 ['string2a2', 'string2b2'],
 ['string3a3', 'string3b3']]

我试过类似的东西

results = [join(ministring, i) for i in (miniarray for (ministring, miniarray) in myarray)]

但我对扩展/表达式(?)中的每个变量范围感到困惑。

最佳答案

就这么简单:

lst = [('string1', ['a1', 'b1']),
 ('string2', ['a2', 'b2']),
 ('string3', ['a3', 'b3'])]

res = [[master + tail for tail in sublist] for master, sublist in lst]

返回:

[['string1a1', 'string1b1'], ['string2a2', 'string2b2'], ['string3a3', 'string3b3']]

请注意,使用这种方法,元组内子列表的长度是不固定的。它可以任意长。

关于python - 列表理解内的可变范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53410474/

相关文章:

Java - Actionlistener 由于我看不到的原因而显示错误

python - 打印循环出队的非空部分

python :How to generate a power law graph

Python 。如何摆脱字符串中的 '\r'?

python - 在已排序的字典列表中查找最接近的项目

c# - 重用变量

python - Django 从 id 中过滤多对多

字典理解中的 Python 作用域

arrays - Dart:如何将简单的 map 转换为 dart/flutter 中的列表?

PHP:如何防止包含/要求在循环中添加数字?