2016-09-28 15 views
-7

私はこのようなリスト(彼らは、ディメンション値です)があります。Pythonは重複をリストから削除しますか?

val = [6'6 X 9'8, 6'6" X 9'8"] 

を私は重複を削除するには、set関数を使用しています:

val = set(val) 

出力:

{6'6 X 9'8, 6'6" X 9'8"} 

を私はしたいです両方の値が同じ場合、出力の任意の値(数字は等しい必要があります):

either 6'6 X 9'8 or 6'6" X 9'8" 


Separate values are like this ` 6'6 X 9'8` and 6'6" X 9'8" 

値が完全に異なる場合は、重複を削除したいと考えています。ここに私の場合:実際には値は同じですが、単位は異なります(数字6の単位を参照してください。最初の値6はマークなしですが、2番目の値6は"です)。しかし、両方の値を考慮した関数を設定してください。

数字だけが同じであれば重複をチェックする方法はありますか?

+0

これは構文的に有効なリストではありません。私の通訳に貼り付けることができるリストを投稿してください。 – timgeb

+0

Python do notはあなたが定義した 'list'を認識します。リストもpythonに組み込まれています - あなたのリストに別の名前を使用してください! – coder

+0

大丈夫ですが、どちらをお預かりしますか?見積もりまたは二重引用符で –

答えて

1

引用符が正しく閉じられていないため、期待通りに機能しません。

l = ["6'6 X 9'8", "6'6 X 9'8"] 

の代わり:あなたのような文字列であるためにあなたのリストの要素を変更した場合

print set(l) 

、あなたは出力が得られます。その後、

l = [6'6 X 9'8, 6'6" X 9'8"] 

言いますあなたは期待した。

P .:ビルドメソッドでは変数名として 'list'を使用しないでください。

+0

ありがとうございます。だからまず私のリストの値を文字列に変換する必要がありますか?実際には、このリスト関数が私のデータフレーム列に行として存在するので、lambdaのapply関数を使ってこの集合関数を適用しています。 'df [' col '] = df [' col ']。apply(lambda x:set(x)) ' – niranjan

+0

アルファベットの文字「X」を使用しているため、文字列にする必要があります。各要素の前後にあるすべての引用符を開いて閉じてください。そうしないと、構文エラーが発生します。 –

+0

私のリストを渡す前にok関数を設定するにはリストの各値を正しい文字列に変換する必要がありますか? – niranjan

関連する問題