CK 027| tuple(python)
6541 ワード
質問する
🔗[2019ココア開発者冬季実習|tuple]
数え切れない、順序付けされた、またはある順序で並べられた要素の集合を「tuple」(tuple)と呼ぶ.n個の要素を有するtupleをn tupleと呼び、以下のように表すことができる.
Tupleには以下の性質があります.
要素の個数がnであり、重複する要素(a 1,a 2,a 3,...,an)がない場合(ただし、a 1,a 2,...,anは自然数)、集合記号「{」,「}」を用いて表すことができる.
{{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}
例えば、tupleが(2、1、3、4)である場合
{{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
に表示されます.この場合、集合は要素順序の影響を受けません.
{{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
{{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}}
{{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}}
同じ例(2、1、3、4)をすべて表します.
せいげんじょうけん
私が書いたコード from itertools import chain
def solution(s):
answer = []
s = list(chain(*[i.split(",") for i in sorted(s[2:-2].split("},{"), key=len)]))
for num in s :
if int(num) not in answer :
answer.append(int(num))
return answer
以下の手順に従って説明した.
from itertools import chain
def solution(s):
answer = []
s = list(chain(*[i.split(",") for i in sorted(s[2:-2].split("},{"), key=len)]))
for num in s :
if int(num) not in answer :
answer.append(int(num))
return answer
{{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
のように両端に括弧を付けるので、両端括弧を外し、中間括弧をsplit
にします.次いで、key=len
を使用して短い要素から昇順に並べ替える、(1) result :
['3', '2,3', '4,2,3', '2,3,4,1']
2.(1)の結果からカンマを削除するために、各要素の
,
をitertools | chainおよびsplit(",")
に削除し、リストに入れる.(2) result :
['3', '2', '3', '4', '2', '3', '2', '3', '4', '1']
answer
にない場合、整数型に変換され、読み込まれて戻ります.他人の解答 import re
from collections import Counter
def solution(s):
s = Counter(re.findall('\d+', s))
return list(map(int, [k for k, v in sorted(s.items(), key=lambda x: x[1], reverse=True)]))
実際、正規表現を使いたいと思っていましたが、re
の方法の勉強が足りないようです.やはり多くの人のコードを見てこそ、視野が広がります!
Reference
この問題について(CK 027| tuple(python)), 我々は、より多くの情報をここで見つけました
https://velog.io/@thisisemptyyy/CK-027-튜플python
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import re
from collections import Counter
def solution(s):
s = Counter(re.findall('\d+', s))
return list(map(int, [k for k, v in sorted(s.items(), key=lambda x: x[1], reverse=True)]))
Reference
この問題について(CK 027| tuple(python)), 我々は、より多くの情報をここで見つけました https://velog.io/@thisisemptyyy/CK-027-튜플pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol