Python 如何向列表列表中的每个列表添加元素?
我遇到了一个问题,我需要一个函数,它包含两个参数,一个字符和一个包含列表的列表。然后,函数应该将该元素添加到列表中的所有列表中。因此,如果我有参数Python 如何向列表列表中的每个列表添加元素?,python,Python,我遇到了一个问题,我需要一个函数,它包含两个参数,一个字符和一个包含列表的列表。然后,函数应该将该元素添加到列表中的所有列表中。因此,如果我有参数“o”和[['tesc'],['fo'],[1],那么输出应该是[['tesc',o'],['fo',o'],[1',o'] 这是我的代码,我怀疑我没有做任何正确的事情,因为我根本没有得到任何输出 def distribute(e, l): new_list = [] for i in l: new_list.appen
“o”
和[['tesc'],['fo'],[1]
,那么输出应该是[['tesc',o'],['fo',o'],[1',o']
这是我的代码,我怀疑我没有做任何正确的事情,因为我根本没有得到任何输出
def distribute(e, l):
new_list = []
for i in l:
new_list.append(i)
for e in new_list:
new_list.append(e)
print(new_list)
我做错了什么?您可以尝试以下方法:
def add_item(l, a):
return [i+[a] for i in l]
print(add_item([['tesc'], ['fo'], [1]], "o"))
输出:
[['tesc', 'o'], ['fo', 'o'], [1, 'o']]
您可以尝试以下方法:
def add_item(l, a):
return [i+[a] for i in l]
print(add_item([['tesc'], ['fo'], [1]], "o"))
输出:
[['tesc', 'o'], ['fo', 'o'], [1, 'o']]
您在循环的
中使用了相同的变量名'e'
,并将其作为函数
参数
。此外,在第二个循环中
,您希望将
附加到i
,因为这些是子列表-而不是将
附加到新列表
这就是为什么函数
永远不会完成的原因,因为您在新列表
中的每个元素中循环
,但添加到新列表
时,它永远不会结束
最后,在编写函数时,我将打印
更改为返回
:
def distribute(e, l):
new_list = []
for i in l:
new_list.append(i)
for i in new_list:
i.append(e)
return new_list
这将起作用,但是它不是很像pythonic
。循环
的第一个就是创建一个输入列表的副本('l')
,这是必需的(在某些应用程序中),因为没有它,输入列表
将被修改为列表
是不可变的
但是,只需使用切片复制列表
,就可以完全摆脱这个循环
。这将使您的功能更加简洁:
def distribute(e, l):
new_list = l[:]
for i in new_list:
i.append(e)
return new_list
当然,如果您不关心解析到函数中的列表
是否被修改,您就不必麻烦复制它了:
def distribute(e, l):
for i in l:
i.append(e)
return l
您在循环的中使用了相同的变量名'e'
,并将其作为函数
参数
。此外,在第二个循环中
,您希望将
附加到i
,因为这些是子列表-而不是将
附加到新列表
这就是为什么函数
永远不会完成的原因,因为您在新列表
中的每个元素中循环
,但添加到新列表
时,它永远不会结束
最后,在编写函数时,我将打印
更改为返回
:
def distribute(e, l):
new_list = []
for i in l:
new_list.append(i)
for i in new_list:
i.append(e)
return new_list
这将起作用,但是它不是很像pythonic
。循环
的第一个就是创建一个输入列表的副本('l')
,这是必需的(在某些应用程序中),因为没有它,输入列表
将被修改为列表
是不可变的
但是,只需使用切片复制列表
,就可以完全摆脱这个循环
。这将使您的功能更加简洁:
def distribute(e, l):
new_list = l[:]
for i in new_list:
i.append(e)
return new_list
当然,如果您不关心解析到函数中的列表
是否被修改,您就不必麻烦复制它了:
def distribute(e, l):
for i in l:
i.append(e)
return l
你把事情弄得太复杂了:
def distribute(e, l):
for sublist in l:
sublist.append(e)
print(l)
distribute("o", [['tesc'], ['fo'], [1]])
输出:
[['tesc', 'o'], ['fo', 'o'], [1, 'o']]
[['tesc',o'],['fo',o'],[1',o']]
你把事情弄得太复杂了:
def distribute(e, l):
for sublist in l:
sublist.append(e)
print(l)
distribute("o", [['tesc'], ['fo'], [1]])
输出:
[['tesc', 'o'], ['fo', 'o'], [1, 'o']]
[['tesc',o'],['fo',o'],[1',o']]