以下是使用中间result
列表的选项:
>>> primary_list = ['the','black','cat','jumped']
>>> secondary_list = ['big','grey']
>>> result = []
>>> for word in primary_list:
... if word == "black":
... result += secondary_list
... else:
... result.append(word)
...
>>> result
['the','big','grey','jumped']
,
您的代码中的问题是由于以下行中的两个原因:
- 尝试将列表分配给
primary_list
中的特定元素。
- 不使用
secondary_list.copy()
。
如果您多次出现'black'
,则这将copy
在那里的次要列表。如果其中任何一个更改,则稍后将更改其他共享的位置,因为它们将共享相同的内存位置。
primary_list[i] = secondary_list
这是解决方案。
final_list = list()
for word in primary_list:
if word=='black':
final_list += secondary_list.copy()
else:
final_list.append(word)
final_list
输出:
['the','jumped']
,
您应该创建另一个列表,并添加引物列表元素和辅助列表元素。
primary_list = ['the','jumped']
secondary_list = ['big','grey']
result_list=[]
for i,word in enumerate(primary_list):
if word == "black":
for secod_val in secondary_list:
result_list.append(second_val)
else:
result_list.append(word)
,
使用切片的简单方法。
>>> a = [1,2,3,7,8]
>>> b = [4,5,6]
>>> a[3:3] = b
>>> a
[1,4,6,8]
,
primary_list = ['the','grey']
for i,word in enumerate(primary_list):
if word == "black":
primary_list[i:len(secondary_list)] = secondary_list
print(primary_list)
['the','jumped']
,
另一个使用字符串的选项:
primary_list = ['the','grey']
for i in range(len(primary_list)):
if primary_list[i] == 'black':
primary_list[i] = secondary_list
final_list = repr(primary_list).replace('[','').replace(']','').replace("'",'').split(',')
print(final_list)
输出:
['the','jumped']
本文链接:https://www.f2er.com/3155025.html