gpt4 book ai didi

python - 如果 k 是空列表,k[ :0] means, 会做什么

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:24 25 4
gpt4 key购买 nike

我想知道list[:0]是什么意思。在下面的代码中它在做什么?

LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
k=[]
while len(k) < 20:
for i in LETTERS:
k[:0] = i

print(k)

# k = ['Z', 'Y', 'X', 'W', 'V', 'U', 'T', 'S', 'R', 'Q', 'P', 'O', 'N', 'M', 'L', 'K', 'J', 'I', 'H', 'G', 'F', 'E', 'D', 'C', 'B', 'A']
  • len(k)==20 时循环不应该中断吗?
  • 如果k[:0]是一个空列表,为什么每次k里面都没有列表?
  • k[:0] 是否像堆栈一样工作并推送较旧的项目?

最佳答案

这里有点奇怪。而且很难解释。

k[:0] 始终谈论列表开头的空范围。事实上,空列表的任何切片都是空列表。

因为它是一个切片,所以它是可迭代的,尽管没有任何元素。就像一次设置多个变量一样,它可以设置为可迭代的值,但不能设置为单个值。

k[:0] = '123'  # puts '1', '2', '3' at the start
k[:0] = 123 # TypeError

while 循环实际上并没有执行任何操作,因为 for 循环会遍历 LETTERS 中的所有内容,然后打破条件。

程序中的步骤是:

  1. 初始化一个空列表
  2. 将列表开头的空白范围 ([]) 设置为 ['A']
  3. 对所有其他字母重复上述操作。
  4. 列表现在有 26 个元素长,因此我们不会进入 while 循环的下一次迭代。

关于python - 如果 k 是空列表,k[ :0] means, 会做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59995467/

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