-1

123の各整数のポイントを持つリンクリストがあるとしましょう。headは1、nextは2、nextは3です。各要素に数値、たとえば3を掛けて、新しいリンクリストがを指すようにするにはどうすればよいですか。 3,6,9?

4

4 に答える 4

1
>>> list1 = [1, 2, 3]
>>> [x * 3 for x in list1]
[3, 6, 9]
>>>
于 2012-10-12T12:46:19.787 に答える
0

リスト内包表記を使用します。

In [1]: lis=[1,2,3]

In [2]: [x*3 for x in lis]
Out[2]: [3, 6, 9]


In [3]: num=123

In [4]: [int(x)*4 for x in str(num)]  #convert num to a string and iterate over it
Out[4]: [4, 8, 12]

In [5]: ''.join(str(int(x)*3) for x in str(num)) #to get something like 4812
Out[5]: '4812'
于 2012-10-12T12:44:41.637 に答える
0

アルゴリズムは単純です。

def multiply(L, x):
    if L.is_empty():
        return L
    else:
        return join(L.head * x, multiply(L.tail, x))

「L.head」が最初の要素である場合、L.tailは残りのリストであり、joinは、最初の引数をリストの最初の要素として2番目の引数に入れる関数です(したがって、join(1、[2,3]) -> [1,2,3])。

Pythonには、組み込み型としての単純なリンクリストはありません。モジュールには、二重リンクリストを実装するdequeタイプがありcollectionsます(単一リンクリストであるかのように使用できます)。

おそらくあなたはあなた自身のリンクリストクラス(宿題のために)を実装していますか?

于 2012-10-12T12:49:22.563 に答える
0

あなたのリストが反復可能であると仮定します:

>>> map(lambda x: x*3, [12, 1, 42])
[36, 3, 126]
于 2012-10-12T12:57:30.593 に答える