Alt listelerdeki ilk öğeler
Oct 03 2020
Verilen
t1 = {{{1, 2, 3, 4}, {5, 6, {15, 16}, 7}}, {11, 12, 13, 14}};
FirstAlt listelerden öğe elde etmeye çalışıyorum
{1,5,15,11}
Nasıl kullanmak First, Takeya da #1bu sorun için?
Yanıtlar
7 kglr Oct 04 2020 at 05:57
Çıkarılan öğelerin "sırasını" korumak önemliyse, şunu kullanabilirsiniz:
ClearAll[fa, fb]
fa = Cases[ReplaceRepeated[{a : Except[_List], b__} :> {{a}, b}]@#, {x_} :> x, All] &;
fb = Cases[MapAll[# /. {a : Except[_List], b__} :> {{a}, b} &, #], {x_} :> x, All] &;
Örnekler:
t1 = {{{1, 2, 3, 4}, {5, 6, {15, 16}, 7}}, {11, 12, 13, 14}};
t2 = {{a, 2, 3, 4}, {b, 6, {c, 8, {{d, 8, 9}, {e, 3, 3, 2}}, {f, 5, 7}}}};(*from cvgmt's answer*)
t3 = {{{1, 2, 3, 4}, {5, 6, {15, {16, {17, {18}}}}, 7}}, {11, 12, 13, 14}};
fa /@ {t1, t2, t3}
{{1, 5, 15, 11}, {a, b, c, d, e, f}, {1, 5, 15, 16, 17, 18, 11}}
fb /@ {t1, t2, t3}
{{1, 5, 15, 11}, {a, b, c, d, e, f}, {1, 5, 15, 16, 17, 18, 11}}
7 Coolwater Oct 03 2020 at 18:32
Tam sayılar ilk elemanlar olarak sayılırsa:
Cases[t1, List[a_Integer, ___] :> a, All]
(* {1, 15, 5, 11} *)
7 ChrisDegnen Oct 04 2020 at 01:22
Cases[First /@ Cases[t1, _List, Infinity], Except[_List]]
{1, 15, 5, 11}
6 cvgmt Oct 03 2020 at 23:18
Tüm liste için uygun başka bir yol.
t2 = {{a, 2, 3, 4}, {b,
6, {c, 8, {{d, 8, 9}, {e, 3, 3, 2}}, {f, 5, 7}}}};
Cases [t2, {x_ /; ListQ[x] == False, ___}, {0, Infinity}]
First /@ %
İki çıktı
{{a, 2, 3, 4}, {d, 8, 9}, {e, 3, 3, 2}, {f, 5, 7}, {c,
8, {{d, 8, 9}, {e, 3, 3, 2}}, {f, 5, 7}}, {b,
6, {c, 8, {{d, 8, 9}, {e, 3, 3, 2}}, {f, 5, 7}}}}
{a, d, e, f, c, b}
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'