2017-05-23 15 views
0

私は出力)(スプリットでソートされたリストの要素にアクセスする

sorted_list=[[int(name.split("_")[-1]), name] for name in string_list] 

を使用して文字列のソートされたリストを作成しているが、私は、各第二の要素にアクセスするにはどうすればよい

[[0, 'str_0'], [1, 'str_1'], [2, 'str_2'], [3, 'str_3']] 

のように見えますペア?私は

for the_str in sorted_list[1]: 
    with open(the_str) as inf: 

をやりたいが、有効なものではなく、

私はそれをどのように修正することができ ValueError: Cannot open console output buffer for reading私はこのエラーを取得しますか?

for the_str in list(zip(*sorted_list))[1]: 
    # code here 

か、単に:

+2

あなたは整数 '1'に対して' open'を呼び出しています。おそらくあなたはこれを意図していませんか? – turbulencetoo

+0

私は 'the_str'をstr_0、str_1、... – mahmood

+0

と見なすことを期待していますが、その理由は分かりません。 'sorted_list [1]'は 'sorted_list'の1番目の要素であり、そこの各サブリストの1番目の要素ではありません – turbulencetoo

答えて

1

おそらく、この欲しかっ:あなたは、リストを反復処理する場合は、あなたが得る

for pair in sorted_list: 
    with open(pair[1]) as inf: 
0

は、あなたが探しているものを、このです

for val in sorted_list: 
    the_str = val[1] 
    # code here 
0

をもう1組あなたはfor句でその部分で各ペアを分割しているとして、あなたのコードの残りの部分を残すことができます。

for the_num, the_str in sorted_list: 
    with open(the_str) as inf: 
0

括弧のネストがsorted_listにネストしたリストのリストがあると言う[0]、だから最初に逆参照する必要があります。あなたはsorted_list [0] [i] [1]が必要です。

関連する問題