Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过使用for循环添加现有列表来创建新列表_Python_Python 3.x_List_Iterator - Fatal编程技术网

Python 如何通过使用for循环添加现有列表来创建新列表

Python 如何通过使用for循环添加现有列表来创建新列表,python,python-3.x,list,iterator,Python,Python 3.x,List,Iterator,我想把一个嵌套列表中的单词和中间的单词“and”连接起来。例如: l1=[Patrick,Peter,Jerome],[Lisa,Karen,Alice] l2应该是:[帕特里克和丽莎,彼得和凯伦,杰罗姆和爱丽丝] 无论嵌套列表中是否有2,3个列表或任何数量的列表,代码都不应该有区别 我尝试在变量中的列表范围内迭代,然后将结果附加到新变量。然而,结果只是第一次组合或第二次组合后的结果 def名称(一个): 新列表=[] x=0 对于范围内的y(len(一)): newlist.append(一个

我想把一个嵌套列表中的单词和中间的单词“and”连接起来。例如:

l1=[Patrick,Peter,Jerome],[Lisa,Karen,Alice]

l2应该是:[帕特里克和丽莎,彼得和凯伦,杰罗姆和爱丽丝]

无论嵌套列表中是否有2,3个列表或任何数量的列表,代码都不应该有区别

我尝试在变量中的列表范围内迭代,然后将结果附加到新变量。然而,结果只是第一次组合或第二次组合后的结果

def名称(一个):
新列表=[]
x=0
对于范围内的y(len(一)):
newlist.append(一个[x][y]+”和“+一个[x+1][y])
x+=1
返回新列表
[“帕特里克和丽莎”]


这就是我现在得到的。我知道这与迭代有关,但由于我对python非常陌生,我陷入了困境。

似乎
l1
是两个元素的元组。使用以下命令:

l2=[]
对于zip中的名称a、名称b(l1[0],l1[1]):
l2.追加(name_a+'和'+name_b)
如果您使用的是Python 3.6+,则可以使用f字符串:

l2=[]
对于zip中的名称a、名称b(l1[0],l1[1]):
l2.追加(f'{name_a}和{name_b})
还请记住,您也可以使用列表理解

Python 3.6+

l2=[f'{name_a}和{name_b}表示name_a,name_b在zip中(l1[0],l1[1])]
l2=[name_a+'和'+name_b代表name_a,name_b在zip中(l1[0],l1[1])]
注意:如果不允许使用
zip
请使用
范围
并使用索引符号,如下所示:

l2=[]
对于范围内的i(len(l1[0]):
名称_a=l1[0][i]
名称_b=l1[1][i]
l2.追加(name_a+'和'+name_b)
更新:根据前面的评论,您应该使用以下内容:

l2=[]
对于范围内的i(len(l1[0]):
l2.append('and'.join(e[i]表示l1中的e))

似乎
l1
是两个元素的元组。使用以下命令:

l2=[]
对于zip中的名称a、名称b(l1[0],l1[1]):
l2.追加(name_a+'和'+name_b)
如果您使用的是Python 3.6+,则可以使用f字符串:

l2=[]
对于zip中的名称a、名称b(l1[0],l1[1]):
l2.追加(f'{name_a}和{name_b})
还请记住,您也可以使用列表理解

Python 3.6+

l2=[f'{name_a}和{name_b}表示name_a,name_b在zip中(l1[0],l1[1])]
l2=[name_a+'和'+name_b代表name_a,name_b在zip中(l1[0],l1[1])]
注意:如果不允许使用
zip
请使用
范围
并使用索引符号,如下所示:

l2=[]
对于范围内的i(len(l1[0]):
名称_a=l1[0][i]
名称_b=l1[1][i]
l2.追加(name_a+'和'+name_b)
更新:根据前面的评论,您应该使用以下内容:

l2=[]
对于范围内的i(len(l1[0]):
l2.append('and'.join(e[i]表示l1中的e))

您可以使用
zip
从子列表和具有“和”重复次数的列表中获取名称组合,元素在第一个列表中出现的次数
一[0]

one = [['Patrick', 'Peter', 'Jerome'], ['Lisa', 'Karen', 'Alice']]
name_tup = zip(one[0], ["and"] * len(one[0]), one[1])
然后使用列表理解从
zip
返回的元组生成输出列表。使用解包,三个元素之间通过一个空格连接,使用
join
函数:

list = [ " ".join([x, y, z]) for x, y, z in name_tup]

>>> list
['Patrick and Lisa', 'Peter and Karen', 'Jerome and Alice']

您可以使用
zip
从子列表和列表中获取名称的组合,该列表在第一个列表中重复了元素出现的次数
one[0]

one = [['Patrick', 'Peter', 'Jerome'], ['Lisa', 'Karen', 'Alice']]
name_tup = zip(one[0], ["and"] * len(one[0]), one[1])
然后使用列表理解从
zip
返回的元组生成输出列表。使用解包,三个元素之间通过一个空格连接,使用
join
函数:

list = [ " ".join([x, y, z]) for x, y, z in name_tup]

>>> list
['Patrick and Lisa', 'Peter and Karen', 'Jerome and Alice']

由于这是一个练习,我仅限于用于循环和索引,不幸的是,我不能使用Zipt。这个答案对我帮助很大,但留下了一个问题。如果现在嵌套列表中有两个以上的列表,则不会考虑位置[1]之后的列表。你能帮我解决这个问题吗?@Koenwijnen,你能提供一个输入和预期输出的例子吗?是的,我能。假设输入嵌套列表=[香蕉,苹果,梨],[大象,猴子,蜗牛],[蓝色,红色,黄色]。在您的示例中,将不考虑第三个列表。但是,我需要我的代码来访问嵌套列表中的所有列表,而不管这些列表有多少。因此,预期结果将是:【香蕉、大象和蜗牛等】@KoenWijnen,在这种情况下,您的预期输出是什么?由于这是一个练习,我仅限于用于循环和索引,不幸的是,我无法使用Zipt。这个答案对我帮助很大,但留下了一个问题。如果现在嵌套列表中有两个以上的列表,则不会考虑位置[1]之后的列表。你能帮我解决这个问题吗?@Koenwijnen,你能提供一个输入和预期输出的例子吗?是的,我能。假设输入嵌套列表=[香蕉,苹果,梨],[大象,猴子,蜗牛],[蓝色,红色,黄色]。在您的示例中,将不考虑第三个列表。但是,我需要我的代码来访问嵌套列表中的所有列表,而不管这些列表有多少。因此,预期结果将是:【香蕉、大象和蜗牛等】@KoenWijnen,在这种情况下,您的预期产出是多少?