gpt4 book ai didi

python - 为 Python 列表赋值不起作用?

转载 作者:太空狗 更新时间:2023-10-30 00:24:37 24 4
gpt4 key购买 nike

以下代码适合我:

# -*- coding: utf-8 -*-
N = int(raw_input("N="))
l=[]
i = 0
while i<N:
n = raw_input("e"+str(i)+"=")
l.append(n)
i = i+1
print l

但是,为什么我不能使用 l[i] = raw_input("e"+str(i)+"=") 来简化它呢?

示例:(不起作用)

# -*- coding: utf-8 -*-
N = int(raw_input("N="))
l=[]
i = 0
while i<N:
l[i] = raw_input("e"+str(i)+"=")
i = i+1
print l

最佳答案

您只能使用索引(例如 obj[x])来访问或修改已存在于 list 中的项目。例如,以下内容有效,因为我们正在访问的列表中的位置已经存在:

>>> chars = ['a', 'b', 'c']
>>> chars[0]
'a'
>>> chars[0] = 'd'
>>> chars
['d', 'b', 'c']

但是,访问或修改列表不存在的位置的项目将不起作用:

>>> chars = ['a', 'b', 'c']
>>> chars[3]
...
IndexError: list index out of range
>>> chars[3] = 'd'
...
IndexError: list assignment index out of range
>>> chars
['a', 'b', 'c']

如果您想简化代码,请尝试:(它使用 list comprehension )

N = int(raw_input("N="))
l = [raw_input("e" + str(i) + "=") for i in range(N)]
print l

关于python - 为 Python 列表赋值不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5544228/

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