2016-08-02 5 views
0
に文字列のリストを分割する

は、私はそうのような文字列のリストを持っていると言う:私はこのような二つの別々のリストにそれらを分割することができますどのようにどのようにPythonの

list = ["Jan 1", "John Smith", "Jan 2", "Bobby Johnson"] 

?先生はインデックスについて何かを述べたが、それは

li1 = ["Jan 1", "John Smith"] 
li2 = ["Jan 2", "Bobby Johnson"] 
+0

あなたは[このような質問](http://stackoverflow.com/q/509211/5488275)と([this one](http://stackoverflow.com/a/509295/5488275)のような)回答をチェックすることができますPythonでスライスする方法の詳細については、こちらをご覧ください。 –

答えて

5

まあ、使用リスト・スライシング説明するのは非常に良い仕事をしませんでした。ところで

li1 = my_list[:2] 
li2 = my_list[2:] 

は、変数の名前listを使用していません組み込みのlistタイプをシャドーイングしているからです。

1

あなたのリストが長いだけで2つのエントリよりもある場合は、これを行うことができます:

zip(list[0::2],list[1::2]) 

出力:

それはきれいに任意の長さのリストを動作させる行う方法の
[('Jan 1', 'John Smith'), ('Jan 2', 'Bobby Johnson')] 
0

ワンそして簡単な方法:

all_lists = (list[x:x+2] for x in range(0, len(list), 2)) 

そして、あなたがして、新しいリストにアクセスすることができます。

li1 = all_lists[0] 
li2 = all_lists[1] 

それとも、それらを反復処理:all_listsとして

for new_list in all_lists: 
    print(new_list) 

、それはまた、データの大きなチャンクで動作します(Pythonの2.xおよび3.xの両方で)発電機です。

0

リストの長さは常に同じになるだろう、またはあなたがこれを行うことができ、最初から知られていない場合は、次の

original_list = [YOUR ORIGINAL LIST] 

A = [:len(original_list)/2] 
B = [len(original_list)/2:] 

Aは、前半になり、Bは後半になります。