は、私は私が別のリスト"keys"
項目の発生のためにそれを検索する"foundkeys"
機能を作成したリスト"mylist"
以下、出力は今、私は"foundkeys"
の出力を渡す"formatted_list"
次のようになりますしています〜"reorder"
"order"
の例を"foundkeys"
のように特定の形式に並べ替える機能。機能によって作成されたリスト対リストで作業
問題 私は上記の設定を使用する場合、私は必要な正確な出力を得ることはありませんが、私は合格した場合「『formatted_list』」「"foundkeys"
の正確な出力である」、"reorder"
に代わりの"foundkeys"
を呼び出します「」キーは「A」と「K」
[['a', [[1, 'a', 'Asfoor', 'b', 'c'],
[2, 'a', 'j', 'deek', 'k'],
[3, 'a', 'k', 'bata', 'p']]],
['k', [[2, 'k', 'j', 'a', 'deek'],
[3, 'k', 'bata', 'a', 'p'],
[4, 'k', 'v', 'm', 'farkha']]]]
で始まるその要素を有する「K」キーで始まるその要素を持つ :、私は正しい出力は次のようにする必要があります必要な形式
になるだろう
しかし、私は、セットアップを使用している場合、私はこの間違った出力を得る: ではなく「」「」キー
[['a', [[1, 'a', 'Asfoor', 'b', 'c'],
[2, 'k', 'j', 'deek', 'a'],
[3, 'k', 'a', 'bata', 'p']]],
['k', [[2, 'k', 'j', 'deek', 'a'],
[3, 'k', 'a', 'bata', 'p'],
[4, 'k', 'v', 'm', 'farkha']]]]
は親切のためのコードに見ての要素の中の「K」を置きますより良い理解。
mylist=
[[1, 'Asfoor', 'a', 'b', 'c'],
[2, 'deek', 'j', 'a', 'k'],
[3, 'bata', 'k', 'a', 'p'],
[4,'farkha','v','m','k']]
keys = ['a', 'k']
def foundkeys(mylist,keys):
def found(list, k):
return k in list
final = []
for j in keys:
final.append([j , [k for k in mylist if found(k, j)]])
return final;
order=foundkeys(mylist,keys)
print("New list with found keys \n",order)
formatted_list=
[
[
'a', [[1, 'Asfoor', 'a', 'b', 'c'], [2, 'deek', 'j', 'a', 'k'], [3, 'bata', 'k', 'a', 'p']
]],
[
'k', [[2, 'deek', 'j', 'a', 'k'], [3, 'bata', 'k', 'a', 'p'], [4, 'farkha', 'v', 'm', 'k']]
]
]
def reorder(alist):
for item in alist:
key=item[0]
value=item[1]
for c,v_item in enumerate(value):
old=value[c][1]
for i,s_value in enumerate(value[c]):
if s_value==key:
value[c][i]=old
value[c][1]=key
# calling reorder function with order function list
reorder(order)
print(order)
# calling reorder function with formatted_list instead
reorder(formatted_list)
print(formatted_list)
ありがとう、それは今、完璧に動作します。 –