Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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 将列表元素追加到列表中,一次添加两个元素_Python_Python 3.x_List - Fatal编程技术网

Python 将列表元素追加到列表中,一次添加两个元素

Python 将列表元素追加到列表中,一次添加两个元素,python,python-3.x,list,Python,Python 3.x,List,我想遍历Python(3.8.5)列表,并在列表中一次添加两个项目。 源列表将始终具有偶数个元素 示例输出: [['a','b'],['c','d']['e','f'],['g','h']] 我已经尝试了range()函数,例如for循环、while循环等。我正在寻找一种有说服力的、有效的方法来实现这一点。下面是我使用示例数据探索的两条不正确的路径谢谢 letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] lette

我想遍历Python(3.8.5)列表,并在列表中一次添加两个项目。 源列表将始终具有偶数个元素

示例输出:

[['a','b'],['c','d']['e','f'],['g','h']]
我已经尝试了range()函数,例如for循环、while循环等。我正在寻找一种有说服力的、有效的方法来实现这一点。下面是我使用示例数据探索的两条不正确的路径谢谢

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
letter_pairs = []
count = 0

for i in range(2): 
    for letter in letters:
        letter_pairs.append([letter, letter])
计数<2时:
对于字母中的字母:
字母对。追加([字母,字母])
计数+=1
使用邮政编码:

[list(x) for x in zip(letters[:-1:2], letters[1::2])]

对于
range()
,可以使用带有
skip
参数的切片

现在
字母对
['a','b'],['c','d'],['e','f'],['g','h'],['i','j']

或者,在列表中:

letter_pairs = [letters[i:i+2] for i in range(0, len(letters), 2) if i < len(letters) - 1]
letter_pairs=[letters[i:i+2]表示范围(0,len(letters),如果i

如果i
确保
字母[i:i+2]
始终有两个元素。

如果要在列表中一次添加两个项目,可以执行以下操作:

字母=['a','b','c','d','e','f','g','h','i','j','k']
字母对=[]
尝试:
对于范围内的i(0,len(字母),2):
字母对。追加([字母[i],字母[i+1]])
通过:
通过#或者如果需要,可以附加最后一个
它的作用是对字母进行迭代,两个接两个,每次在列表中的该位置和该位置后的一个位置提取字母,并将它们添加到itertools import zip的字母对中 字母=['a',b',c',d',e',f',g',h',i',j',k'] args=[iter(字母)]*2 列表(zip_最长(*args,fillvalue=None))
输出:

[('a', 'b'), ('c', 'd'), ('e', 'f'), ('g', 'h'), ('i', 'j'), ('k', None)]
说明:


在这里,我们将迭代器(因此没有额外的内存分配)装入字母列表,然后将其放入列表中两次(可能是一个元组或另一个iterable对象),然后使用
itertools
模块中的
zip\u longest
函数按2分组元素。3个或更多元素的组也可以轻松实现这一点-只需将
*2
替换为必要的数字即可。另外,
zip\u longest
可以替换为内置的
zip
函数,但如果列表中没有足够的元素进行分组,则该函数将失败。

您可以使用迭代器来满足需要

国际热核实验堆(iter)(字母) 而(a:=下一个(iter_,无))和(b:=下一个(iter_,无)): 字母对。附加([a,b]) 如果a:letter\u pairs.append([a]) 打印(字母对) >>>[a'、[b']、[c'、[d']、[e'、[f']、[g'、[h']、[i'、[j']、[k']
源代码列表中的元素总是偶数,那么您使用
范围()的方式应该适合您

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
list1= [letters[i:i+2] for i in range(0,len(letters),2)]
print(list1)
输出:

[['a', 'b'], ['c', 'd'], ['e', 'f'], ['g', 'h'], ['i', 'j']]

我的荣幸,迪格菲尔德:)
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
list1= [letters[i:i+2] for i in range(0,len(letters),2)]
print(list1)
[['a', 'b'], ['c', 'd'], ['e', 'f'], ['g', 'h'], ['i', 'j']]