2024-05-23 14:34:05 发布
网友
给定value = [],以下代码段之间有什么区别?你知道吗
value = []
代码段1:
for i in range(t): value[i] = 'yes'
代码段2:
value += input.split()
在第一种情况下,我得到一个错误“IndexError:list assignment index out of range”
第二种情况似乎工作正常,没有任何错误。你知道吗
第一个示例尝试访问列表的i元素并将其设置为值。因为你的列表是一个空列表,所以这个元素不存在,因此你会得到一个错误。你知道吗
i
要使第一个代码段正常工作,必须append值:
append
values = [] for i in range(t): values.append(i)
第二个示例使用这样一个事实:当添加两个带有+的列表时,您将创建一个新列表,其中第二个列表的所有元素都位于末尾。通过使用+=这个新列表被再次分配给values。你知道吗
+
+=
values
第二个代码段也可以使用extend:
extend
values.extend(input.split())
在第一个示例中,您试图将'yes'插入列表中没有的索引处。(因为空列表没有位置插入任何内容。)
'yes'
在第二个示例中,您使用iterable input.split()1的元素扩展列表,因为
input.split()
my_list += iterable
相当于
my_list.extend(iterable)
演示:
>>> my_list = [] >>> my_list.extend('Hi Sree'.split()) >>> my_list ['Hi', 'Sree'] >>> >>> my_list = [] >>> my_list += 'Hi Sree'.split() >>> my_list ['Hi', 'Sree']
1input已经是内置函数的名称。使用另一个名字,以不阴影球。你知道吗
input
第一个示例尝试访问列表的
i
元素并将其设置为值。因为你的列表是一个空列表,所以这个元素不存在,因此你会得到一个错误。你知道吗要使第一个代码段正常工作,必须
append
值:第二个示例使用这样一个事实:当添加两个带有
+
的列表时,您将创建一个新列表,其中第二个列表的所有元素都位于末尾。通过使用+=
这个新列表被再次分配给values
。你知道吗第二个代码段也可以使用
extend
:在第一个示例中,您试图将
'yes'
插入列表中没有的索引处。(因为空列表没有位置插入任何内容。)在第二个示例中,您使用iterable
input.split()
1的元素扩展列表,因为相当于
演示:
1
input
已经是内置函数的名称。使用另一个名字,以不阴影球。你知道吗相关问题 更多 >
编程相关推荐