2

私はプログラミングとPythonに不慣れであると述べたいと思います。この質問を投稿する前に調査を試みましたが、基本的な知識が不足していても結果が得られなかったため、ここで質問する必要がありました。

私は次のような2つの文字列を持っています:

 str_a = "100,101,105,304"
 str_b = "400,500,101"

これらの文字列を1つにまとめる必要があるので、次を使用します。

  str_c = str_a + "," + str_b

そして私の問題はここから始まります。この新しい文字列では、要素(数字)がコンマで区切られているので、各項目を1回だけリストします。番号の順番は関係ありませんが、昇順の場合はかなり驚くべきことです。

可能であれば、小さいものから大きいものへと注文して、これら2つを組み合わせて、各番号を1回ずつリストするために何ができますか?

これらは文字列なので、繰り返すことができるかどうかさえわかりませんか?

よろしくお願いします。

4

3 に答える 3

4

これを試して:

str_a = "100,101,105,304"
str_b = "400,500,101,2000"
l = str_a.split(',') + str_b.split(',')
print ','.join(sorted(set(l), key=int))

出力は次のとおりです。

100,101,105,304,400,500,2000

コメントをありがとうOren!リストの要素を文字列ではなく整数として比較するためkey=intの追加の引数として追加しました。sortedこの引数を使用すると、リストの各要素で呼び出されて比較キーを抽出する1つの引数の関数を指定できます。この例では、を使用intして各要素を整数に変換します。

于 2012-10-04T22:53:52.783 に答える
1

splitメソッドを使用して文字列を分割します。

str_a_vals = str_a.split(",")
str_b_vals = str_b.split(",")

次に、次のことを行います。

allVals = str_a_vals
allVals += str_b_vals

str_c = ",".join(set(allVals))
于 2012-10-04T22:49:24.877 に答える
0

数値の並べ替えや選択などを行いたい場合は、数値を文字列に格納することはおそらく適切なアプローチではありません。次のようなリストを使用してみてください。

list_a = [100,101,105,304]
list_b = [400,500,101]

結合されたリストの一意の要素を取得するのは、

unique = set(list_a + list_b)

昇順で取得するのは

ascending = sorted(list_a + list_b)
于 2012-10-04T23:05:41.013 に答える