我正试图在二维中添加第二项。我已经尝试了几十种不同的方法,但似乎无法将其附加。
def main():
values = [[10,0], [13, 0], [36, 0], [74,0], [22,0]]
user = int(input('Enter a whole number'))
for i in range(len(values)):
print(values[i])
(当前输出)
10, 0
13, 0
36, 0
74, 0
22, 0
(第二部分是数值[0]+用户输入)
[10, 12]
[13, 15]
[36, 38]
[74, 76]
[22, 24]
具有列表理解
user = 2
[[x[0], sum(x)+user] for x in values]
>>> [[10, 12], [13, 15], [36, 38], [74, 76], [22, 24]]
或使用地图:
map(lambda x: [x[0], sum(x)+user], values)
首先,您几乎总是可以避免在range(len(iterable))
上迭代——在这种情况下,您的循环可以写得更好:
for value in values:
print(value)
用于完全相同的功能。
从你的描述中,我不确定你希望代码的行为方式,但你似乎想要这样的东西——每一行输出都会有相应的value
的第一项,然后添加到用户输入中;即完全忽略现有输入的第二项:
for value in values:
total = value[0] + user
print((value[0], total))
或者,如果您希望覆盖每个value
的第二项,以便稍后在您的程序中使用:
values = [[10,0], [13, 0], [36, 0], [74,0], [22,0]]
for value in values:
value[1] = value[0] + user
print(value)
不应该就是这样吗?
>>> def f():
values = [[10,0], [13, 0], [36, 0], [74,0], [22,0]]
user = int(input('Enter a whole number'))
for i in range(len(values)):
values[i][1]=values[i][0]+user
print(values[i])
>>> f()
Enter a whole number2
[10, 12]
[13, 15]
[36, 38]
[74, 76]
[22, 24]