为什么Python将''th','th','th','th','th'作为'5*['th']'而不是五个列表的结果?

Var*_*una 1 python list

在Python中,为什么这两个5 * ['th'] and [5 * ' th']给出几乎相同的结果?这里的问题是为什么5* ['th']列出五个大而不是五个列表的列表.

>>>5 * ['th']
['th', 'th', 'th', 'th', 'th']
>>> [5 * 'th']
['ththththth']
Run Code Online (Sandbox Code Playgroud)

对于5*['th'],预期结果是5个列表!

Jon*_*art 7

为什么这些...给出几乎相同的结果?

他们没有.

5 * ['th']
Run Code Online (Sandbox Code Playgroud)

这将生成一个包含单个元素的列表'th',然后将其乘以5.结果是一个包含该元素的5个副本的列表:

 ['th', 'th', 'th', 'th', 'th']
Run Code Online (Sandbox Code Playgroud)

这个清单的长度是5.


[5 * ' th']
Run Code Online (Sandbox Code Playgroud)

这会将字符串连接' th'五次,生成字符串' th th th th th',然后创建一个列表,将该字符串作为唯一元素.

[' th th th th th']
Run Code Online (Sandbox Code Playgroud)

此列表的长度为1.