Python 将列表元素追加到列表中,一次添加两个元素
我想遍历Python(3.8.5)列表,并在列表中一次添加两个项目。 源列表将始终具有偶数个元素 示例输出: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
[['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']]