我听不懂这份清单的理解

问题描述 投票:-2回答:1
a = [x+y for x in ['Python ','C '] for y in ['Language','Programming']]
print(a)

输出为['Python Language', 'Python Programming', 'C Language', 'C Programming']

我认为两个列表加在一起应该像['Python ','C ','Language','Programming']

python python-3.x
1个回答
1
投票

简单地从左到右“解构”理解,这与嵌套for循环为您提供两个列表的笛卡尔积相同:

a = []
for x in ['Python ','C ']:
    for y in ['Language','Programming']:
        a.append(x+y)
# ['Python Language', 'Python Programming', 'C Language', 'C Programming']

您所期望的预期输出是列表串联的结果,例如

a = ['Python ','C '] + ['Language','Programming']
# ['Python ', 'C ', 'Language', 'Programming']
© www.soinside.com 2019 - 2024. All rights reserved.