所以,我通过 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]
为什么会这样?
发生这种情况是因为
+
运算符根据其操作的数据类型执行不同的操作。
对于列表,它会创建一个新列表,其中包含第一个列表中的所有项目,然后是第二个列表中的所有项目。
对于字符串,它创建一个新字符串,其中包含第一个字符串中的所有字母,后跟第二个字符串中的所有字母。
对于数字,它只是将它们加在一起。