2017-12-20 16 views
1

こんにちは、私はこのプログラミング言語を初めて使っていますリストの最後の単語の前に単語を追加するには?

私のリストの最後の項目の前に、単語'and'を追加しました。例えば

:私はそれを印刷する場合、出力は以下のようにする必要があり

myList = [1,2,3,4] 

1,2,3 and 4 
+1

あなたがこれまでに試した何? – gonczor

+1

あなたは 'myList = '1,2,3 and 4''を行うことができます...しかし、"出力を印刷すれば "とはどういう意味ですか?何の出力? – goodvibration

+0

'join()'、 'list slicing'と' string concatenation'を見てください。 –

答えて

6

ようにそれを呼び出すことが一つの方法ですが、私はjoinを使用する文字列にint型のを変換する必要があります。

myList = [1,2,3,4] 
smyList = [str(n) for n in myList[:-1]] 
print(",".join(smyList), 'and', myList[-1]) 

は:

1,2,3 and 4 

-1リストのインデックスは、最後(最も右端)の要素を示します。

+0

'print( '1,2,3 and 4')'もそうです。 – goodvibration

+1

@goodvibration:私は、値をハードコーディングすることは問題の探しているとは思っていませんが、それが良い答えだと思うのであれば、自分自身でそれを提出してみませんか? – cdarke

+0

あなたのprintステートメントはこれを '1,2,3 '、' and '、4'と吐き出します。代わりに 'print()、' 'join(smyList)+ '、' + str(myList [-1]))' 'が役に立ちます。 – Usernamenotfound

2

これが最もエレガントな解決策ではないかもしれないが、これは、私はそれに取り組むだろうかです。

次のようにフォーマッタ関数を定義します。

def format_list(mylist) 
    str = '' 
    for i in range(len(mylist)-1): 
     str.append(str(mylist[i-1]) + ', ') 

    str.append('and ' + str(mylist[-1])) 

    return str 

をその後、ここでは、この

>>> x = [1,2,3,4] 
>>> format_list(x) 
1, 2, 3, and 4 
+0

それは1,2,3,4という印字の仕事をしないだろう... – goodvibration

+0

ああ私は質問を誤解した。私はこれを完全に書き直す必要があります。スタンバイ... – kjgregory

+0

申し訳ありません@ジンギ私は最初に質問を誤解しました。私はちょうど私の答えを一から書き直しました。うまくいけば、それは今あなたのためにもっと便利です。 – kjgregory

1
あなたはまた、文字列整形使用することができ

:あなたがあれば、あなたの質問は誤解を招くおそれがあり

','.join(map(str,myList[:-1])) + ' and ' + str(myList[-1]) 
#'1,2,3 and 4' 
1

joinは(リスト要素を結合するために)使用してmap(str,myList)を「リストの最後の単語の前に単語を追加する方法」と言っています。それはリストの最後の項目の前に 'and'文字列を追加することを意味します。多くの人が.format()メソッドを使って答えを出していますが、ここで

listメソッドは、あなたの質問に応じて次のとおりです。

myList = [1,2,3,4] 
print(list((lambda x,y:(x+['and']+y))(myList[:-1],myList[-1:]))) 

出力:

[1, 2, 3, 'and', 4] 
0

を文字列に、リスト内のすべての整数に変換するために

l = [1,2,3,4] 
print("{} and {}".format(",".join(str(i) for i in l[:-1]), l[-1])) 
#'1,2,3 and 4' 
関連する問題