Python 如果k是一个空列表,那么k[:0]意味着什么
我想知道列表[:0]的含义。在下面的代码中,它在做什么Python 如果k是一个空列表,那么k[:0]意味着什么,python,list,listview,python-3.7,object-slicing,Python,List,Listview,Python 3.7,Object Slicing,我想知道列表[: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'
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']
LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
k=[]
而len(k)<20:
就我而言,写信:
k[:0]=i
印刷品(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里面都没有列表k[:0]
是否像堆栈一样工作并推送旧项目k[:0]
- 这里有点奇怪。很难解释
k[:0]
总是在列表开头谈论空范围。事实上,空列表的任何部分都是空列表
因为它是一个切片,所以它是可移植的,尽管没有任何元素。就像一次设置多个变量一样,它可以设置为一个iterable,但不能设置为单个值
k[:0] = '123' # puts '1', '2', '3' at the start
k[:0] = 123 # TypeError
while循环实际上什么都不做,因为for循环以字母
遍历所有内容,然后破坏条件
程序中的步骤包括:
[]
)设置为['A']这回答了你的问题吗
k[:0]
在切片赋值中的含义与切片表达式不同。循环不会中断,因为它会运行一次完整的for
循环,然后检查k
的长度。