gpt4 book ai didi

python - 如何打印元素列表中当前索引的每三个元素

转载 作者:行者123 更新时间:2023-11-28 21:04:39 25 4
gpt4 key购买 nike

我有元素列表 lst = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']。如何以下列格式打印当前索引中的每三个元素? [[ 'A', 'E', 'I'],[ 'B', 'F', 'J'],[ 'C', 'G'],[ 'D', 'H' ]]:

def printFormat(lst, columns):
for i in range(0, len(lst)):
print lst[i]
for j in range():
#if (i)%3==0:
# print lst[i]


if __name__ == '__main__':
lst = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
columns = 3
printFormat(lst, columns)

最佳答案

>>> lst
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
>>> num_of_parts=4
>>> newlst=[lst[i::4] for i in range(num_of_parts)]
>>> newlst
[['A', 'E', 'I'], ['B', 'F', 'J'], ['C', 'G'], ['D', 'H']]
>>>

编辑 1: 添加一些解释和使用 mod 运算符的第二种方法

list_obj[start:stop:step] 类似于方法slice(start, stop, step)start 表示切片必须从哪里开始,切片在 stop - 1 处停止。如果 startstop 被忽略,它们分别被替换为 0len(list) - 1

因此 startstop 是为了获取列表的子列表/切片,而 step 获取每个 step(每隔 2 次/3 次等)来自该子列表/切片的元素。

这里有一些例子证明了这一点:

>>> lst
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[1:3]
[1, 2]
>>> lst[1:]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[:3]
[0, 1, 2]
>>> lst[::2]
[0, 2, 4, 6, 8]
>>> lst[::1]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[1::2]
[1, 3, 5, 7, 9]
>>>

模运算符方法:

>>> lst
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
>>> num_of_parts=4
>>> newlst=[[lst[i] for i in range(len(lst)) if i%4 == j] for j in range(num_of_parts)]
>>> newlst
[['A', 'E', 'I'], ['B', 'F', 'J'], ['C', 'G'], ['D', 'H']]
>>>

编辑 2: 使 mod 运算符方法更具可读性,我们得到以下内容:

>>> lst=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
>>> newlst=[]
>>> for j in range(num_of_parts):
... temp=[]
... for i in range(len(lst)):
... if i%4 == j:
... temp.append(lst[i])
... newlst.append(temp)
...
>>> newlst
[['A', 'E', 'I'], ['B', 'F', 'J'], ['C', 'G'], ['D', 'H']]
>>>

关于python - 如何打印元素列表中当前索引的每三个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com