python - 解释python列表理解技术

标签 python list list-comprehension

谁能解释一下这段代码。

>>> guest=['john','sue','chris']
>>> [(a,b,c) for a in guest for b in guest for c in guest]

有了这些结果...

[('john', 'john', 'john'), ('john', 'john', 'sue'), ('john', 'john', 'chris'), ('john', 'sue', 'john'), ('john', 'sue',
'sue'), ('john', 'sue', 'chris'), ('john', 'chris', 'john'), ('john', 'chris', 'sue'), ('john', 'chris', 'chris'), ('sue
', 'john', 'john'), ('sue', 'john', 'sue'), ('sue', 'john', 'chris'), ('sue', 'sue', 'john'), ('sue', 'sue', 'sue'), ('s
ue', 'sue', 'chris'), ('sue', 'chris', 'john'), ('sue', 'chris', 'sue'), ('sue', 'chris', 'chris'), ('chris', 'john', 'j
ohn'), ('chris', 'john', 'sue'), ('chris', 'john', 'chris'), ('chris', 'sue', 'john'), ('chris', 'sue', 'sue'), ('chris'
, 'sue', 'chris'), ('chris', 'chris', 'john'), ('chris', 'chris', 'sue'), ('chris', 'chris', 'chris')]

我知道 (a,b,c) 正在构造一个三值元组,但我不明白循环是怎么回事。谢谢

最佳答案

这是一个嵌套的列表理解,您可以按照它们在理解中出现的相同顺序展开循环以了解正在发生的事情:

result = []
for a in guest:
    for b in guest:
        for c in guest:
            # yield (a,b,c)
            result.append((a,b,c))

关于python - 解释python列表理解技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16163013/

相关文章:

python - Django - GeoDjango 以错误的顺序读取坐标

c# - 在 C# 中,如何在给定 List<Object> 时确定对象的类型?

types - 如何使用像 map 这样的 while 条件使类型稳定的生成器?

python - 将具有重复键的元组列表转换为列表字典

Python 帮助 - 解析数据包日志

python - 从 apache2 开始 selenium session

python - 如何用时间序列数据训练和预测 Keras LSTM?

Python如何在迭代字典返回元组时按键访问

python - 如何将多列分组以在 pandas DataFrame 中列出

python - 如何分配给列表理解中的函数调用