2016-02-13 8 views
6

私はGoogleとこのサイトを検索しています。だからすでに質問に答えられているなら、私はそれを指摘したいと思います。リストの最後の要素に参加する


は私がリストの最後の要素を含め、リストの要素の範囲に参加しようとしています。ここに私のテストコードがあります:

inp = ['1','2','3','4'] 
test = '_'.join(inp[0:2]) 
test2 = '_'.join(inp[2:-1]) 

print(test + ' & ' + test2) 

私は範囲がリストの最後の要素は含まれません知っているので、これはちょうど私TEST2のための3を得たが、私は取得しようとする試みで0の代わりに-1を使用している場合それは、周りをループバックすることによって最後の要素を含めるために、代わりに何も返しません。


私はまだコーディングに非常に新しいですので、完全にこれを行う簡単な方法がありますかどうかは私は驚かないだろう。私はこれが解決可能かどうかを知ってうれしく思いますが、別の解決策にも同様に満足しています。基本的には、最初の2つの項目をリストに入れてオブジェクト名と照合し、リストの残りの部分(特定の要素数はない)を第2の変数にします。

私はリストの最初の2つの要素をポップして独自のものにして、そのリストと切り捨てられた元のものを範囲を使わずに結合することができると仮定します。しかし、チェックが失敗した場合は元のリストを再度使用する必要があるので、リストのコピーも作成する必要があります。すべての実現可能な場合は、それよりも少ないコードで行うことはいいですか?

+2

あなたが望む結果を加えてください。 – timgeb

+0

それは '1_2&3_4'を印刷するはずですが、誰かがすでに私のためにそれを解決しています。 – aryst0krat

答えて

4

エンドを残し、最後の要素を含むリストを取得するには、次の

inp = ['1','2','3','4'] 
test = '_'.join(inp[:2]) 
test2 = '_'.join(inp[2:]) 

print(test + ' & ' + test2) 
+0

これは私が必要としていたものです。そしてとてもシンプルです!最初に基本を学んだので、忘れてしまったことをお見せしましょう。 – aryst0krat

2

あなたはネストされた結合を使用することができます

>>> ' & '.join(['_'.join(inp[i:j]) for i, j in zip([0, 2], [2, None])]) 
'1_2 & 3_4' 

や簡単なソリューション:

>>> ' & '.join(["_".join(inp[:2]), "_".join(inp[2:])]) 
'1_2 & 3_4' 
+0

リストの解説は私が学ばなければならないものです(私の教師は決してそれに触れなかったので、2.7に存在していたとは思いません)。しかし、当面は他の解決策が私の脳には簡単で簡単です。実装する。ありがとう、結構です! – aryst0krat

関連する問題