1

2 番目のアイテムを 2 次元で追加しようとしています。私は数十の異なる方法を試しましたが、追加できないようです。

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

(2 番目の部分は値 [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それがユーザー入力に追加されます。つまり、既存の入力の 2 番目の項目を完全に無視します。

for value in values:
    total = value[0] + user
    print((value[0], total))

または、後でプログラムで使用するためにそれぞれの 2 番目の項目を上書きする場合: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 に答える