1

我试图在我的二维中附加第二个项目。我已经尝试了几十种不同的方法,但似乎无法附加它。

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

(第二部分是 values[0] + 用户输入)

[10, 12]

[13, 15]

[36, 38]

[74, 76]

[22, 24]
4

3 回答 3

2

列表理解

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)
于 2013-12-07T01:41:35.377 回答
1

首先,你几乎总是可以避免迭代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)
于 2013-12-07T01:49:12.493 回答
1

不应该是这样吗?

>>> 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]
于 2013-12-07T02:02:44.027 回答