Coursera Python - 使用列表理解创建一个名为 lst2 的列表,该列表将列表中的每个元素加倍,lst

问题描述 投票:0回答:1

所以,我通过 Runestone Academy 在 Coursera 的 Python 课程上得到了这个问题:

使用列表理解创建一个名为 lst2 的列表,该列表将列表中的每个元素加倍,lst。

lst = [[“嗨”,“再见”],“你好”,“再见”,[9, 2], 4]

这是我的代码

lst2 = [l + l for l in lst]
print(lst2)

输出:

[['hi', 'bye', 'hi', 'bye'], 'hellohello', 'goodbyegoodbye', [9, 2, 9, 2], 8]

我不明白为什么所有这些都“翻倍”,除了 lst 的最后一位数字 4,它变成了 8。

我预计输出是:

[['hi', 'bye', 'hi', 'bye'], 'hellohello', 'goodbyegoodbye', [9, 2, 9, 2], 4, 4]

为什么会这样?

python list-comprehension
1个回答
0
投票

发生这种情况是因为

+
运算符根据其操作的数据类型执行不同的操作。

对于列表,它会创建一个新列表,其中包含第一个列表中的所有项目,然后是第二个列表中的所有项目。

对于字符串,它创建一个新字符串,其中包含第一个字符串中的所有字母,后跟第二个字符串中的所有字母。

对于数字,它只是将它们加在一起。

© www.soinside.com 2019 - 2024. All rights reserved.