Python 为什么切片返回一个列表,而索引返回一个值

Python 为什么切片返回一个列表,而索引返回一个值,python,Python,索引-->返回字符串 Input: l1 = ['bbq', 'rr'] [l1[0] + l1[0], l1[1]+l1[1]] Output: ['bbqbbq', 'rrrr'] 切片--->返回列表 Input: [l1[:1] + l1[:1], l1[1:2]+l1[1:2]]<br> Output: [['bbq', 'bbq'], ['rr', 'rr']] 输入:[l1[:1]+l1[:1],l1[1:2]+l1[1:2]] 输出:['bbq','bbq'],

索引-->返回字符串

Input:
l1 = ['bbq', 'rr']
[l1[0] + l1[0], l1[1]+l1[1]]

Output: ['bbqbbq', 'rrrr']
切片--->返回列表

Input: [l1[:1] + l1[:1], l1[1:2]+l1[1:2]]<br>
Output: [['bbq', 'bbq'], ['rr', 'rr']]
输入:[l1[:1]+l1[:1],l1[1:2]+l1[1:2]]
输出:['bbq','bbq'],['rr','rr']]
想想这个: 当你切东西的时候,为什么要切?您需要一个值范围。除了在容器中,Python还将如何返回值组?因此,Python假设在进行切片时,它需要多个值,因此它会为您将其包装在一个容器中。类似地,在编制索引时,您告诉Python您只需要容器中的一个对象,而不是容器本身


假装你正在从洗衣垫上取衣服。如果你捡起不止一条毯子,你就带上你的篮子。如果你只拿一条毯子,你可以用手拿。如果有一天你带着篮子,而篮子里只有一条毯子,即使只有一条,你也会把它放在篮子里

他只是为了回答问题而问是愚蠢的,但这是对他所问问题的一个很好的回答。这并不愚蠢(这是许多高声誉用户所做的),但就个人而言,我认为这不是一个好问题。我一直在处理一个特定的问题。我来stackoverflow寻求帮助,但当我正在打印问题时,我听到了一声“啊哈!”就像那个时刻。我本不打算公开发表这篇文章,但后来我读到“不仅仅可以问和回答你自己的问题,这是明确鼓励的。”在常见问题解答中,我真的不知道为什么我的问题会被否决。这个网站是为所有技能水平的人设计的,即使这个问题/答案对你来说可能是显而易见的,但它可能对某些人有所帮助。这就是为什么新手很难加入这个社区;人们在meta中谈论如何使这个社区更友好,但归根结底,大多数人都不愿意,比如这样的情况。只是为了混淆事情,如果
l1='a string'
,那么
l[0]==l[:1]
!实际上,索引-->返回字符串,切片-->仍然返回字符串。如果你在切一根线,那就是。